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
おつかれさまでした。