ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

実行日の週の初日、末日を取得する

ASP.NET MVC 2 - My My MVC Applicationの実装ポイント(3) で公開した
実行日の週の初日、末日を取得するプログラムの実装です。

もっと頭のいいやり方も有りそうな気もするが、
とりあえず備忘録として載せておきます。


int dayOfWeek = Int32.Parse(DateTime.Today.DayOfWeek.ToString("d"));
DateTime firstDateOfWeek = DateTime.Today.AddDays(-1 * dayOfWeek);
DateTime lastDateOfWeek = DateTime.Today.AddDays(6 - dayOfWeek);

.Netでは曜日をint型で扱い、日曜を0、土曜を6とするようです。
つまり実行日が日曜から何日後からを取得できます。
また土曜は何日後かを取得するには、6(土曜)から引くことで取得できます。

これを利用し、実行日が日曜からN日たっている場合
・実行日の週の初日(日曜) = 実行日 - N日
・実行日の週の末日(土曜) = 実行日 + (6 - N日)
の計算を行っています。

どっかのライブラリや、.Netのメソッドが
週の初日、末日を取得する処理を提供してくれないかな・・・。
単に検索できてないだけかも。。。