月末の日付を取得する方法
業務用アプリの開発をしているとよくあるのが、月末や月初の日付でどうのこうのって処理。
月初は必ず1日なのに対し、月末は月によって変わるから困りもの。
月末の取得方法でよくあるのが多分以下の方法。
DateTime dt = new DateTime(2016, 11, 1); dt = dt.Add(-1)
10月の月末が欲しい場合、"2016/11/01"のDateTimeオブジェクトを作っておいて1日減算する方法。
俺も今まではそうして取得していたんだけど、最近こんな方法もあることを知った。
DateTime dt = new DateTime(2016, 10, DateTime.DaysInMonth(2016, 10));
ポイントはDaysInMonthメソッド。
こいつは指定した年月の末日を返してくれる。
こいつの戻り値をDateTimeオブジェクトを生成する際の引数に渡してやれば、
わざわざ11月1日から1日引いて~なんてやらなくても月末が取得できちゃうってすんぽー。
まぁ、手間はあまり変わらない気がするけどね。
ってか日付だけじゃなく、yyyy/mm/ddで返してくれたらいのにね…。