首页 文章

如何使用vb.net根据周数获取一周的开始日期?

提问于
浏览
0

我需要帮助从vb.net中的给定周数获取一周的开始日期 .

我将combobox与项目1-53绑定为周数 . 我想要做的是每当我选择一个特定的周数时,它将返回所选周数的第一个日期 .

例如,我选择了第46周,它必须在2013年11月11日作为第46周的第一个日期返回 .

我尝试了以下代码,它只返回当前周数的一周中的第一个日期 .

DateAdd("d", -Weekday(Now, FirstDayOfWeek.Monday) + 1, Now)

有没有可能的方法可以返回我的预期输出?

请帮我 . 提前致谢 .

2 回答

  • 1

    你可以尝试这样的事情:

    Private Sub TestDateAdd()
        Dim weekStart As DateTime = GetWeekStartDate(46, 2013)
        Console.WriteLine(weekStart)
    End Sub
    
    
    Private Function GetWeekStartDate(weekNumber As Integer, year As Integer) As Date
        Dim startDate As New DateTime(year, 1, 1)
        Dim weekDate As DateTime = DateAdd(DateInterval.WeekOfYear, weekNumber - 1, startDate)
        Return DateAdd(DateInterval.Day, (-weekDate.DayOfWeek) + 1, weekDate)
    End Function
    

    免责声明:我只是用一个输入测试了这个,你可能想确保它在不同年份如预期的那样工作等等 .

  • 0
    Public Function FirstDateOfWeek(ByVal Year As Integer, ByVal Week As Integer, Optional FirstDayOfWeek As DayOfWeek = DayOfWeek.Monday) As Date
        Dim dt As Date = New Date(Year, 1, 1)
        If dt.DayOfWeek > 4 Then dt = dt.AddDays(7 - dt.DayOfWeek) Else dt = dt.AddDays(-dt.DayOfWeek)
        dt = dt.AddDays(FirstDayOfWeek)
        Return dt.AddDays(7 * (Week - 1))
    End Function
    

相关问题