2011-02-16 5 views
0

私は、1)終了日が開始日よりも小さくないこと、および2)2つのUTC日付の差が12ヶ月以下であることを検証する必要があります。これを行うために、私はmonthDifference機能を必要とする:2つのActionScript Dateオブジェクトの違いを月単位で計算する方法は?

public static function monthDifference(start:Date, end:Date):int; 

部分ヶ月が混乱することができますので、これは月差が動作するようになっている方法です。

  • 2010年1月1日と1月の間に平均月差2010年3月31日は、ゼロ(0)です。
  • 2010年1月31日と2010年2月1日の月間の差は、(1)です。
  • 2010年1月1日から2010年2月28日までの月の差は、(1)です。
  • 2010年1月1日から2010年3月1日の月間の差は、2つです(2)です。

ActionScript 3.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; 
} 
+0

かなりオーバークしているように見えます...私のコードを批判してください、私はそれがあまりにも単純です*正しいことを覚えています! – Rudiger

1

これは、私はエラーがあります場合は私に知らせてください

public static function monthDifference(start:Date, end:Date):int { 
    return (end.getUTCFullYear() - start.getUTCFullYear()) * 12 + 
     (end.getUTCMonth() - start.getUTCMonth()); 
} 

...思い付いたものです!

0

うるう年に数えなければならないので、それほど簡単ではありません!AS3Commons-langライブラリからDateUtils.asをご覧ください。無効な日付を扱うので、addMonths()という本当に便利な方法があります。

関連する問題