按年和月获取星期数

苏普里亚

如何根据给定的年,月和周号(该月的周号)获取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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章