Дата математика во флексах плохо поддерживается, и кажется очень неточной. Flex может быть языком выхода, но ради потомков и любого унаследованного кода, который может зависнуть, пожалуйста, не используйте принятый ответ user1196374. Их ответ грубый и очень неточный.
Ниже я включил код, который я разработал для достижения поставленной цели, который первоначально использовал его код в этом посте в качестве отправной точки.
Отказ от ответственности, я не знаю, охватывает ли это каждый недостаток в предыдущей функции, и я не знаю, будет ли он хорошо обрабатывать другие календари. Однако это гораздо лучшее решение, чем принятый ответ.
public static function dateDiff(dateA:Date, dateB:Date): int{
var retVal:int = 0;
if(dateA != null && dateB!=null) {
retVal = roughDateDiff(toMidnightFromUTCDate(dateA),toMidnightFromUTCDate(dateB));
}
return retVal;
}
private static function roughDateDiff(dateA:Date, dateB:Date): int{
var retVal:int = 0;
if(dateA != null && dateB!=null){
if(dateA.time > dateB.time){
var dateDiff:Number = dateA.time - dateB.time;
retVal = Math.floor((dateDiff/86400000));
}else{
var dateDiff:Number = dateB.time - dateA.time;
retVal = Math.floor((dateDiff/86400000));
}
}
return retVal;
}
private static function toMidnightFromUTCDate(pre:Date):Date{
var post:Date = new Date(pre.toUTCString());
post.setUTCHours(0);
post.setUTCMinutes(0);
post.setUTCSeconds(0);
post.setUTCMilliseconds(0);
return post;
}