好吧,我正在制作一个程序,要求用户输入年份(例如 2002 年)并返回该年的第一个星期二。
我什至不知道如何开始。任何人都可以帮忙吗?
Public Function GetFirstTuesday(year As Integer) As Date
Dim d As Date = New Date(year, 1, 1, 0, 0)
For i As Integer = 0 To 6
If d.AddDays(i).DayOfWeek = DayOfWeek.Tuesday) Then
Return d.AddDays(i)
End If
Next
End Function
我尝试使用 Linq 解决它(我是 linq 初学者)。错误处理取决于您。
Sub Main()
Console.WriteLine(GetFirstTuesdayOfYear(2013)) 'returns 01.01.2013
Console.WriteLine(GetFirstTuesdayOfYear(2012)) 'returns 03.01.2012
Console.WriteLine(GetFirstTuesdayOfYear(2011)) 'returns 04.01.2011
Console.WriteLine(GetFirstTuesdayOfYear(2010)) 'returns 05.01.2010
Console.WriteLine(GetFirstTuesdayOfYear(2009)) 'returns 06.01.2009
Console.Read()
End Sub
Private Function GetFirstTuesdayOfYear(year As Integer) As DateTime
Return Enumerable.Range(1, DateTime.DaysInMonth(Year, 1)).[Select](Function(day) New DateTime(Year, 1, day)).ToList().FirstOrDefault(Function(x) x.DayOfWeek = DayOfWeek.Tuesday)
End Function