//計算兩個日期之間間隔的天數
//o_DateTimeA:比較大日期
//o_DateTimeB:比較小的日期
//eg:GetMinDays(new Date(2008, 10, 11),new Date(2007, 11, 11),'mm') return :11
function GetMinDays(o_DateTimeA,o_DateTimeB,type)
{
if(typeof(o_DateTimeA) != "object" || !(/Date/.test(o_DateTimeA.constructor)))
throw new Error(-1,"calDateDistance(o_DateTimeA,o_DateTimeB,type)的o_DateTimeA參數為Date類型.");
if(typeof(o_DateTimeB) != "object" || !(/Date/.test(o_DateTimeB.constructor)))
throw new Error(-1,"calDateDistance(o_DateTimeA,o_DateTimeB,type)的o_DateTimeB參數為Date類型.");
type = (type==null?'dd':type);
if(!((new RegExp(type+",","g")).test("yy,mm,ww,dd,hh,mi,ss,ms,")))
throw new Error(-1,"calDateDistance(o_DateTimeA,o_DateTimeB,type)的type參數為非法.");
var num=0;
var o = { ww : 7*86400000, dd : 86400000, hh : 3600000, mi : 60000, ss : 1000, ms : 1 };
switch(type)
{
case "yy": num = o_DateTimeA.getFullYear() - o_DateTimeB.getFullYear(); break;
case "mm": num = (o_DateTimeA.getFullYear() - o_DateTimeB.getFullYear())*12+o_DateTimeA.getMonth()-o_DateTimeB.getMonth(); break;
default:
var sub = o_DateTimeA.valueOf() - o_DateTimeB.valueOf();
if (o[type]) num = (sub/o[type]); break;
}
return num;
}
//o_DateTimeA:比較大日期
//o_DateTimeB:比較小的日期
//eg:GetMinDays(new Date(2008, 10, 11),new Date(2007, 11, 11),'mm') return :11
function GetMinDays(o_DateTimeA,o_DateTimeB,type)
{
if(typeof(o_DateTimeA) != "object" || !(/Date/.test(o_DateTimeA.constructor)))
throw new Error(-1,"calDateDistance(o_DateTimeA,o_DateTimeB,type)的o_DateTimeA參數為Date類型.");
if(typeof(o_DateTimeB) != "object" || !(/Date/.test(o_DateTimeB.constructor)))
throw new Error(-1,"calDateDistance(o_DateTimeA,o_DateTimeB,type)的o_DateTimeB參數為Date類型.");
type = (type==null?'dd':type);
if(!((new RegExp(type+",","g")).test("yy,mm,ww,dd,hh,mi,ss,ms,")))
throw new Error(-1,"calDateDistance(o_DateTimeA,o_DateTimeB,type)的type參數為非法.");
var num=0;
var o = { ww : 7*86400000, dd : 86400000, hh : 3600000, mi : 60000, ss : 1000, ms : 1 };
switch(type)
{
case "yy": num = o_DateTimeA.getFullYear() - o_DateTimeB.getFullYear(); break;
case "mm": num = (o_DateTimeA.getFullYear() - o_DateTimeB.getFullYear())*12+o_DateTimeA.getMonth()-o_DateTimeB.getMonth(); break;
default:
var sub = o_DateTimeA.valueOf() - o_DateTimeB.valueOf();
if (o[type]) num = (sub/o[type]); break;
}
return num;
}