Flex令我瘋狂,我認爲它是如何處理閏年和沒有閏年的奇怪問題。所以這是我的例子。我有下面的dateDiff方法來查找兩個日期之間的天數或毫秒數。如果我運行以下三條語句,我會遇到一些奇怪的問題。奇怪的彈性日期問題
dateDiff("date", new Date(2010, 0,1), new Date(2010, 0, 31));
dateDiff("date", new Date(2010, 1,1), new Date(2010, 1, 28));
dateDiff("date", new Date(2010, 2,1), new Date(2010, 2, 31));
dateDiff("date", new Date(2010, 3,1), new Date(2010, 3, 30));
如果您要查看上面的日期比較,您期望獲得30,27,30和29作爲日期之間的天數。奇怪的部分是,比較3月1日至3月31日,我得到29。爲什麼?這與2月份只有28天有關嗎?如果有人對此有任何意見,將不勝感激。
public static function dateDiff(datePart:String, startDate:Date, endDate:Date):Number
{
var _returnValue:Number = 0;
switch (datePart) {
case "milliseconds":
_returnValue = endDate.time - startDate.time;
break;
case "date":
// TODO: Need to figure out DST problem i.e. 23 hours at DST start, 25 at end.
// Math.floor causes rounding down error with DST start at dayOfYear
_returnValue = Math.floor(dateDiff("milliseconds", startDate, endDate)/(1000 * 60 * 60 * 24));
break;
}
return _returnValue;
}
太棒了!非常感謝您發佈代碼示例。這完美地解決了我的問題。 – CodeMonkey 2009-06-29 17:43:52