如何根据给定的年,月和周号(该月的周号)获取Weekdayweek和Lastdayofweek?
我能够获得FirstdayofWeek,但是当我尝试第2周的2月(2018、2、1)时,输出日期不正确。
Dim firstDayOfWeek As date
firstDayOfWeek = DateSerial(2018, 2, 1) 'february 2018
firstDayOfWeek = DateAdd("ww", 1, firstDayOfWeek) 'week 2
输出:
2018/2/8上午12:00:00
预期产量:
一周的第一
天:2/5/2018一周的最后一天:2/9/2018
根据您已有的信息创建自己的函数:
Public Function FirstDateOfWeekByMonth(ByVal year As Integer, ByVal month as Integer, ByVal weekOfYear As Integer) As DateTime
Dim jan1 As DateTime = New DateTime(year, month, 1)
Dim daysOffset As Integer = DayOfWeek.Thursday - jan1.DayOfWeek
Dim firstThursday As DateTime = jan1.AddDays(daysOffset)
Dim cal = CultureInfo.CurrentCulture.Calendar
Dim firstWeek As Integer = cal.GetWeekOfYear(firstThursday, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday)
Dim weekNum = weekOfYear
If firstWeek <= 1 Then
weekNum -= 1
End If
Dim result = firstThursday.AddDays(weekNum * 7)
Return result.AddDays(-3)
End Function
和用法:
Dim FirstDay as DateTime = FirstDateOfWeekByMonth(2018, 2 , 1) 'First Week of 2018 Feb
Dim LastDay as DateTime = FirstDay.AddDays(4) 'Add 4 days to get Friday
Console.WriteLine("firstdayofweek: " + FirstDay)
Console.WriteLine("lastdayofweek: " + LastDay)
让您:
firstdayofweek: 2/5/2018
lastdayofweek: 2/9/2018
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句