' firstday.vb Imports System Public Class FirstDayOfWeek ' 日曜日始まりの場合 Shared Public Function FirstDayOfThisWeek(d As DateTime) As DateTime Return d.AddDays(DayOfWeek.Sunday - d.DayOfWeek) End Function ' 月曜日始まりの場合 Public Shared Function FirstDayOfThisWeek2(d As DateTime) As DateTime Dim diff As Integer = DayOfWeek.Monday - d.DayOfWeek If diff > 0 Then diff -= 7 End If Return d.AddDays(diff) End Function Shared Sub Main() Dim today, sunday, monday As DateTime today = DateTime.Parse("2005/10/28") ' 木曜日 sunday = FirstDayOfThisWeek(today) Console.WriteLine(sunday) ' 出力:2005/10/23 0:00:00 monday = FirstDayOfThisWeek2(today) Console.WriteLine(monday) ' 出力:2005/10/24 0:00:00 today = DateTime.Parse("2005/10/30") ' 日曜日 sunday = FirstDayOfThisWeek(today) Console.WriteLine(sunday) ' 出力:2005/10/30 0:00:00 monday = FirstDayOfThisWeek2(today) Console.WriteLine(monday) ' 出力:2005/10/24 0:00:00 End Sub End Class ' コンパイル方法:vbc firstday.vb