Accessなどでは、日付の計算が単純(いい加減)で、例えば明日の日付を取得したければ、Date() + 1 でいいんだけど、VB.NETでは同じようにすると型が違うから無理!って起こられてしまう。
VB.NETでは、日付の加減は、AddDaysを使う。
以下具体的な例を記述。
AddDaysの使い方
AddDaysを使用した日付の加減算は、「日付型の値.AddDays(X)」でよい。
例えば、日付型の値にDateTimePickerコントロールのValueを指定したとすると、
DateTimePickerコントロール.Value.AddDays(1)
とか、単純に変数.AddDays(X)でよい。
Xは、加減する数値を指定する。つまり、明日だったら1、昨日だったら-1を指定すればよい。
明日 = Today.AddDays(1) 昨日 = Today.AddDays(-1)
その他色々な日付を求める例。
今週の開始日(日曜日が週初めの場合)
Today.AddDays(DayOfWeek.Sunday - Today.DayOfWeek)
今週の終了日(開始日に6加算すればよい)
(Today.AddDays(DayOfWeek.Sunday - Today.DayOfWeek)).AddDays(6)
今月開始日
DateAndTime.DateSerial(Today.Year, Today.Month, 1)
今月の終了日
Me.dtpEndDate.Value = DateAndTime.DateSerial(Today.Year, Today.Month + 1, 0)
先週の開始日
Today.AddDays(DayOfWeek.Sunday - Today.DayOfWeek - 7)
先週の終了日(今週の開始日から1日引けばよい)
Today.AddDays(DayOfWeek.Sunday - Today.DayOfWeek-1)
先月の1日の日付
DateAndTime.DateSerial(Today.Year, Today.Month - 1, 1)
先月末日付
DateAndTime.DateSerial(Today.Year, Today.Month, 0)
参考資料
@ITの以下の記事が参考になる。
週の始まりの日付を求めるには? - @IT
コメント