我是一个SQL人员,但我需要一个函数来计算VB.NET中两个日期之间的工作日数.我不需要担心假期.不幸的是,我的尝试是徒劳的.非常感激
这将包含在Reporting Service 2008 R2中的自定义代码中.
试试这个.我修改了我一直在使用的现有功能.这将在SSRS 2008中有效.请注意,您也可以使用C#编写代码,如果您对此更加熟悉,并且在部署之后,只需从报告中引用程序集即可.1
public Shared Function Weekdays(ByRef startDate As Date, ByRef endDate As Date ) As integer
dim numWeekdays as Integer
dim totalDays as Integer
dim WeekendDays as Integer
numWeekdays = 0
WeekendDays = 0
totalDays = DateDiff(DateInterval.Day, startDate , endDate ) + 1
for i as integer = 1 to totalDays
if DatePart(dateinterval.weekday,startDate) = 1 then
WeekendDays = WeekendDays + 1
end if
if DatePart(dateinterval.weekday, startDate) = 7 then
WeekendDays = WeekendDays + 1
end if
startDate = DateAdd("d", 1, startDate)
next
numWeekdays = totalDays - WeekendDays
return numWeekdays
End Function
Run Code Online (Sandbox Code Playgroud)
您无需检查这些日期之间的每一天是否为工作日.
如果有n几天,则有int(n / 7)完整的周,每个星期有5个工作日,所以这是5 * int(n / 7)工作日.
然后,您需要检查剩余部分周(0..6天)的天数.