// JavaScript Document
var DateTool={
	
	//判断闰年
	isLeapYear : function (y){
		return (0 == y%4 && ((y%100!=0)||(y%400==0))); 
	},
	
	DateAdd : function(flag, num, date) {
		var temp;
		var ms=Date.parse(date);
		if (isNaN(ms)) {
			return false;	
		}
		
		var d=this.toArray(date);
		
		switch (flag) {
			case "ms":temp = new Date(ms + num);break;
			case "s" :temp = new Date(ms + (1000 * num));break;
			case "n" :temp = new Date(ms + (60000 * num));break;
			case "h" :temp = new Date(ms + (3600000 * num));break;
			case "d" :temp = new Date(ms + (86400000 * num));break;
			case "m" :temp = new Date(d['y'], (d['m'] + num), d['d'], d['h'], d['n'], d['s']);break;
			case "y" :temp = new Date((d['y'] + num), d['m'], d['d'], d['h'], d['n'], d['s']);break;
		}
		return temp;
	},
	
	DateDiff : function(flag, dtStart, dtEnd) {
		if (typeof dtStart == 'string')
		{
			dtStart = this.StringToDate(dtStart);
		}
		
		if (typeof dtEnd == 'string')
		{
			dtEnd = this.StringToDate(dtEnd);
		}
		
		if (isNaN(dtStart) || isNaN(dtEnd)){
			return false;
		}
		
		var ds=this.toArray(dtStart);
		var de=this.toArray(dtEnd);
		
		
		switch (flag) {
			case "ms":return parseInt((dtEnd - dtStart));
			case "s":return parseInt((dtEnd - dtStart) / 1000);
			case "n":return parseInt((dtEnd - dtStart) / 60000);
			case "h":return parseInt((dtEnd - dtStart) / 3600000);
			case "d":return parseInt((dtEnd - dtStart) / 86400000);
			case "w":return parseInt((dtEnd - dtStart) / (86400000 * 7));
			case "m":return (de['m']+1) + ((de['y'] - ds['y'])*12) - (ds['m'] +1);
			case "y":return de['y'] - ds['y'];
		}
	},
	
	NowAdd : function (flag, num){
		return this.DateAdd(flag, num, new Date());
	},
	
	toArray : function(date)
	{
		var d =new Array();
		d['y'] = date.getFullYear();
		d['m'] = date.getMonth();
		d['d'] = date.getDate();
		d['h'] = date.getHours();
		d['n'] = date.getMinutes();
		d['s'] = date.getSeconds();
		return d;
	},
	
	getPart : function (flag){
		var d=this.toArray(new Date);
		if ("ymdhns".indexOf(flag)!=-1 && flag.length == 1)
			return d[flag];
		else
			return false;
	},
	
	/**
	 *	字符串转成日期类型 
	 *	格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd YYYYMMdd
	 */
	StringToDate : function (DateStr)
	{
		//MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd
		var converted = Date.parse(DateStr);
		var myDate = new Date(converted);
		if (isNaN(myDate))
		{
			//YYYY-MM-dd类型转换
			if (DateStr.indexOf('-')!=-1)
			{
				var arys= DateStr.split('-');
				myDate = new Date(arys[0],--arys[1],arys[2]);
			}
			else if (DateStr.length>=8){
				//YYYYMMdd格式的字串转换
				var year = DateStr.substring(0,4);
				var month = DateStr.substring(4,6);
				var day = DateStr.substring(6,8);
				myDate = new Date(year, --month, day);
			}
		}
		return myDate;
	},
	
	test : function () {
		
		
	}
}