Vbscript 日期之间的典型ASP工作日数

Vbscript 日期之间的典型ASP工作日数,vbscript,asp-classic,Vbscript,Asp Classic,在经典ASP VBScript中是否有任何方法可以获取两个日期之间的工作日数?显然,我们有DateDiff()函数,但这将收回总天数,但我想省略周末 你说得对,DateDiff()没有涵盖这一点,但它可以与WeekDay()结合使用,以确定一天是否在周末 通过使用DateDiff()获取天数,我们可以使用For循环逐步通过天数,使用DateAdd()随时间递增日期,并检查递增的日期值是否是特定的WeekDay()。然后,我们可以根据这个结果决定是否增加一个计数器,该计数器存储我们得到的工作日数

在经典ASP VBScript中是否有任何方法可以获取两个日期之间的工作日数?显然,我们有
DateDiff()
函数,但这将收回总天数,但我想省略周末

你说得对,
DateDiff()
没有涵盖这一点,但它可以与
WeekDay()
结合使用,以确定
一天是否在周末

通过使用
DateDiff()
获取天数,我们可以使用
For
循环逐步通过天数,使用
DateAdd()
随时间递增日期,并检查递增的日期值是否是特定的
WeekDay()
。然后,我们可以根据这个结果决定是否增加一个计数器,该计数器存储我们得到的工作日数

下面是一个如何执行此操作的示例,主逻辑已封装在一个函数中,您可以将该函数包含在
#include
脚本文件中,以便在多个页面中使用


VBScript不包括请求的操作,但是作为间隔为
ww
DateDiff
返回两个日期之间的星期日数,确保开始和结束日期在周末之外,我们可以直接计算工作日数:

选项显式
函数工作日之间(ByVal d1、ByVal d2)
暗淡的
'调整日期顺序以简化计算,并始终返回0或正数
如果d1>d2,则
d=d1:d1=d2:d2=d
如果结束
'如果是周末,则将开始日期向前移动
d=工作日(d1,星期一)
如果d>5,则d1=DateAdd(“d”,3-(d\6+d\7),d1)
'如果是周末,则向后移动结束日期
d=工作日(d2,星期一)
如果d>5,则d2=DateAdd(“d”,-1*(d\6+d\7),d2)
"算算,
'DateDiff(“d”)=日期之间的天数
“+1包括开始日
'-2*DateDiff(“ww”)用于排除日期之间的周末
工作日介于=1+日期差(“d”,d1,d2,vbMonday)-2*日期差(“ww”,d1,d2,vbMonday)
'如果结果为负值,则两个日期之间没有工作日
如果WorkingDaysBetween<0,则WorkingDaysBetween=0
端函数
使用谷歌,点击率高。。。。