Date.prototype.toYyyyMMddString = function(){
	return (this.getFullYear() * 10000 + (this.getMonth() + 1) * 100 + this.getDate()) + "";
}
Date.prototype.toYyyyMMString = function(){
	return (this.getFullYear() * 100 + (this.getMonth() + 1)) + "";
}
Date.prototype.getZeroPaddingMonth = function(){
	var month = this.getMonth() + 1;
	return (month < 10 ? "0" + month : month);
}
Date.prototype.getZeroPaddingDate = function(){
	var date = this.getDate();
	return (date < 10 ? "0" + date : date);
}
Date.prototype.toMDString = function(){
	return this.getMonth() + 1 + "/" + this.getDate();
}
var getDateWeekAry = function(d){
	var ret = new Array();
	var day = d.getDay();
	for(var i = 0; i < 7; i++){
		if(day < i){
			ret.push(dateMinus(d, day - i));
		}else if(day > i){
			ret.push(dateAdd(d, i - day));
		}else{
			ret.push(d);
		}
	}
	return ret;
}
var parseDateFromYyyyMMdd = function(yyyyMMdd){
	var year = Math.floor(yyyyMMdd / 10000);
	var month = Math.floor(yyyyMMdd % 10000 / 100) - 1;
	var day = yyyyMMdd % 100;
	return new Date(year, month, day);
}
var parseDateFromYyyyMM = function(yyyyMM){
	return parseDateFromYyyyMMdd(yyyyMM + "01");
}
var dateAdd = function(date, num){
	var dat = date.getDate();
	var month = date.getMonth();
	var year = date.getFullYear();
	for(var i = 0; i < num; i++){
		dat++;
		if(maxDay[month] < dat){
			dat = 1;
			month++;
		}
		if(month > 11){
			month = 0;
			year++;
		}
	}
	return new Date(year, month, dat);
}
var dateMinus = function(date, num){
	var dat = date.getDate();
	var month = date.getMonth();
	var year = date.getFullYear();
	for(var i = 0; i < num; i++){
		dat--;
		if(dat < 1){
			month--;
			dat = maxDay[month];
		}
		if(month < 0){
			month = 11;
			dat = maxDay[month];
			year--;
		}
	}
	var dd = new Date(year, month, dat);
	return new Date(year, month, dat);
}
var getNextWeekDate = function(date, day){
	var ret = date;
	var cnt = 0;
	do{
		ret = dateAdd(ret, 1);
		cnt++;
	}while(ret.getDay() != day && cnt < 7)

	return ret;
}
var getPrevWeekDate = function(date, day){
	var ret = date;
	if(date.getDay() != day){
		ret = dateMinus(ret, 7);
	}
	var cnt = 0;
	do{
		ret = dateMinus(ret, 1);
		cnt++;
	}while(ret.getDay() != day && cnt < 7)

	return ret;
}
var getFirstDate = function(date){
	var year = date.getFullYear();
	var month = date.getMonth();
	return new Date(year, month, 1);
}
var getLastDate = function(date){
	var year = date.getFullYear();
	var month = date.getMonth();
	if(year == 2012 && month == 2){
		return new Date(year, month, 29);
	}
	return new Date(year, month, maxDay[month]);
}
var getNextMonthFirstDate = function(date){
	var month = date.getMonth() + 1;
	var year = date.getFullYear();
	if(month > 11){
		month = 0;
		year++;
	}
	return new Date(year, month, 1);
}
var getPrevMonthLastDate = function(date){
	var month = date.getMonth() - 1;
	var year = date.getFullYear();
	if(month < 0){
		month = 11;
		year--;
	}
	return new Date(year, month, maxDay[month]);
}
var maxDay = new Array(31,28,31,30,31,30,31,31,30,31,30,31); // にしむくさむらい
var today = new Date();
