我必须验证1)结束日期不小于开始日期和2)两个UTC日期之间的差异不超过12个月。为此,我需要一个monthDifference
函数:
public static function monthDifference(start:Date, end:Date):int;
由于部分月份可能令人困惑,因此月份差异应该起作用:
如何计算ActionScript 3.0中的月份差异?
答案 0 :(得分:1)
列出了一个非常可靠的here。我没有找到作者的名字,udayms是他博客的用户名。
从班上拉出来:
private static function getMonths(date1:Date,date2:Date):Number{
var yearDiff = getYears(date1,date2);
var monthDiff = date1.getMonth() - date2.getMonth();
if(monthDiff < 0){
monthDiff += 12;
}
if(date1.getDate()< date2.getDate()){
monthDiff -=1;
}
return 12 *yearDiff + monthDiff;
}
答案 1 :(得分:1)
这就是我想出来的......
public static function monthDifference(start:Date, end:Date):int {
return (end.getUTCFullYear() - start.getUTCFullYear()) * 12 +
(end.getUTCMonth() - start.getUTCMonth());
}
如果有任何错误,请告诉我!
答案 2 :(得分:0)
这不是那么容易,因为你必须计算闰年!我认为你应该从DateUtils.as库中查看AS3Commons-lang。有一个名为addMonths()
的非常有用的方法可以帮助您,因为它可以处理无效的日期。