Actionscript 月の最終日を取得する方法 - クラス Date

Actionscriptで月の最終日を取得する方法です。

実務では、当月の初日から、当月の月末までの日付を検索条件に利用したりしますよね。

ここでは 指定された月の最終日を取得する方法 を紹介します。


月の最終日を取得する

以下のメソッドで解決できます。


/**
 * 日をミリ秒として表現
 */
private static const milliSecondsPerDay:int = 1000 * 60 * 60 * 24;

/**
 * 指定された Date 型より、その月の最終日を返します。
 *
 * @param date Date 型
 * @return Date 型
 */
public static function lastDayOfThisMonth(date:Date):Date {
    var year:Number = date.fullYear;
    var month:Number = date.month + 1;
    var addDate:Date = new Date(year, month, 1, 00, 00);
    var dueDate:Date = new Date(addDate.getTime() + (-1 * milliSecondsPerDay));
    return dueDate;
}

まず、new Date(year, month, 1, 00, 00); にて、翌月の初日を求めます。次に、new Date(addDate.getTime() + (-1 * milliSecondsPerDay)); にて、前日の日付を求めています。日をミリ秒として表現するところがミソです。例として、2013/04/10 であれば、2013/04/30 が月末になりますね。一旦 2013/05/01 の日付を求め、一日マイナスすることで、2013/04/30 が取得可能となります。月末は、30 日で終わったり、31 日で終わったりと様々ですからね。

以下のテストを実行すると・・・


trace(lastDayOfThisMonth(new Date()));  //2013.04.10

結果は以下の通りです。


Tue Apr 30 00:00:00 GMT+0900 2013

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。