繁体   English   中英

将年份和周数转换为日期

[英]Convert year and week number to date

我正在使用表单元素来创建日期选择器。 您可以选择一年、一个月和一天。 或者你可以选择一年零一周。 我正在努力解决一周的问题。

您 select 开始年份和开始周,然后是结束年份和结束周。

假设您选择 4 作为开始周,选择 7 作为结束周。 然后,我希望将第 4 周的星期一作为开始日期,将第 7 周的星期日作为结束日期。

如何以 YYYY-MM-DD 格式获取这些日期? 不知道从哪里开始!

我现在拥有的是四个下拉菜单。 开始年,开始周,结束年和结束周。 谁能指出我正确的方向?

关于这个问题,go 有很多很多不同的方法。 我开始问自己,“给定日期和月份,我将如何获得日期?”,然后我从给定周数的情况下逆向工作,如何获得日期。 答案非常简单,涉及双For循环和 VBA 中Application.WorksheetFunction.WeekNum的使用。 将周开始设置为星期一也将返回该周的星期一,因此不需要额外的努力。

Sub Convert_Dates()

    'user inputs
    Dim lYear As Long: lYear = 2020
    Dim lWeekNum As Long: lWeekNum = 4


    Dim lMonth As Long, lDay As Long


    For lMonth = 1 To 12
        For lDay = 1 To 31
            If Application.WorksheetFunction.WeekNum(DateSerial(lYear, lMonth, lDay), vbMonday) = lWeekNum Then
                Debug.Print Format(DateSerial(lYear, lMonth, lDay), "YYYY-MM-DD")
                Exit Sub
            End If
        Next lDay
    Next lMonth

End Sub

output 是:

在此处输入图像描述

我相信您现在可以修改它以满足您的需要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM