Tak*_*iii 1 excel vba excel-formula
我想检索一周的第一天的日期(一周从星期一开始)知道年份和周数。(1年52周)
Dim nYear As Integer, _
nWeek, As Integer
startDate As Date
nYear = 2018
nWeek= 1
'startDate = ?
Run Code Online (Sandbox Code Playgroud)
预期结果 :01/01/2018
有没有一种简单而动态的方法来做到这一点?
谢谢
Dim nTrimester As Integer, _
nYear As Integer, _
nWeek As Integer, _
wd As Integer, _
startDate As Date, _
inputDate As Date
nYear = 2019
nWeek = 1
inputDate = DateSerial(nYear, 1, 1)
inputDate = DateAdd("ww", nWeek - 1, inputDate)
wd = Weekday(inputDate, vbMonday)
startDate = DateAdd("d", 1 - wd, inputDate)
Run Code Online (Sandbox Code Playgroud)
编辑:上面的答案将一年中的第一周视为一年中第一天的那一周。根据 ISO 8601,一年的第一周是一年中的第一个星期四,因此,应该是
Dim nTrimester As Integer, _
nYear As Integer, _
nWeek As Integer, _
wd As Integer, _
startDate As Date, _
inputDate As Date
nYear = 2021
nWeek = 1
inputDate = DateSerial(nYear, 1, 1)
If Weekday(inputDate, vbMonday) > 4 Then
nWeek = nWeek + 1
End If
inputDate = DateAdd("ww", nWeek - 1, inputDate)
wd = Weekday(inputDate, vbMonday)
startDate = DateAdd("d", 1 - wd, inputDate)
Run Code Online (Sandbox Code Playgroud)
两种方法的区别在于,第一种方法是2021年第一周的第一天是2020-12-28,第二种方法是2021-01-04
| 归档时间: |
|
| 查看次数: |
9579 次 |
| 最近记录: |