Excel 如何从datetime值中提取日期以检查两个日期之间的周末?
我需要检查两次约会之间的周末 行数据:Excel 如何从datetime值中提取日期以检查两个日期之间的周末?,excel,vba,Excel,Vba,我需要检查两次约会之间的周末 行数据: 29/11/2019 12:45:43 and 30/11/2019 12:45:43 我的代码: Function Check_Weeknd(start_date As Date, end_date As Date) As Boolean While start_date <> end_date start_date = DateAdd("d", 1, start_date) If Weekday(start_dat
29/11/2019 12:45:43 and 30/11/2019 12:45:43
我的代码:
Function Check_Weeknd(start_date As Date, end_date As Date) As Boolean
While start_date <> end_date
start_date = DateAdd("d", 1, start_date)
If Weekday(start_date) = 7 Then
Check_Weeknd = True
End If
Wend
End Function
函数检查\u Weeknd(开始日期为日期,结束日期为日期)为布尔值
而开始日期结束日期
开始日期=日期添加(“d”,1,开始日期)
如果工作日(开始日期)=7,则
检查\u Weeknd=True
如果结束
温德
端函数
您可以使用类似的方法避免循环
Function check_weekend(dtStart As Date, dtEnd As Date) As Boolean
check_weekend = DateDiff("d", dtStart, dtEnd) - _
WorksheetFunction.NetworkDays(dtStart, dtEnd) > 0
End Function
你可以用这样的方法来避免循环
Function check_weekend(dtStart As Date, dtEnd As Date) As Boolean
check_weekend = DateDiff("d", dtStart, dtEnd) - _
WorksheetFunction.NetworkDays(dtStart, dtEnd) > 0
End Function
尝试:
我添加了Int
函数来显示如何消除时间,但是在这个函数中它不是必需的,因为Weekday
只在日期部分操作
也许更好一点:noInt
函数,第二个日期输入是可选的,因此如果需要,您可以测试单个日期:
Function Check_Weeknd(start_date As Date, Optional end_date As Date) As Boolean
Dim D As Date
If end_date = 0 Then end_date = start_date
For D = start_date To end_date
If Weekday(D) = vbSaturday Or _
Weekday(D) = vbSunday Then
Check_Weeknd = True
Exit Function
End If
Next D
End Function
尝试:
我添加了Int
函数来显示如何消除时间,但是在这个函数中它不是必需的,因为Weekday
只在日期部分操作
也许更好一点:noInt
函数,第二个日期输入是可选的,因此如果需要,您可以测试单个日期:
Function Check_Weeknd(start_date As Date, Optional end_date As Date) As Boolean
Dim D As Date
If end_date = 0 Then end_date = start_date
For D = start_date To end_date
If Weekday(D) = vbSaturday Or _
Weekday(D) = vbSunday Then
Check_Weeknd = True
Exit Function
End If
Next D
End Function
Weekday()
函数是7,它告诉您今天是星期六。这是你的意图吗?您是否查看了DateDiff()
?不清楚你说的“周末检查”是什么意思。是的,我想知道这是不是周末。然后我收到指示(真),所以周日不算周末?为什么?我将其计算为Weekend函数的Weekday()
值为7表示今天是星期六。这是你的意图吗?您是否查看了DateDiff()
?不清楚你说的“周末检查”是什么意思。是的,我想知道这是不是周末。然后我收到指示(真),所以周日不算周末?为什么?我认为这是周末的事,我不明白这个逻辑。你能解释一下吗?@Bimka09谷歌学习一下,这是两个excel函数DateDiff
和NetworkDays
我知道,但这不是我想要的。它检查从实际天数DateDiff
中减去的两个日期之间的工作日NetworkDays
是否大于0.0
对不起,我不理解这个逻辑。你能解释一下吗?@Bimka09谷歌并学习它,它是两个excel函数DateDiff
和NetworkDays
我知道,但这不是我想要的。它检查两个日期之间的工作日NetworkDays
从实际天数DateDiff
中减去的天数是否大于0>0