我有一个程序使用报告查看器向用户显示各种类型的数据,我需要其中一个(基本上)计算两个日期之间的天数没有周末(即:从周五到周一,应该显示2而不是4)。
到目前为止,我可以用周末来计算它。
如果有人知道如何,我会很感激。
代码示例:(我在其中一个表上使用的公式作为表达式)
CInt(Avg(DateDiff(dateinterval.DayOfYear,
Fields!DataEntregue.Value,
Fields!DataPrevista.Value,
FirstDayofWeek.Monday)))
答案 0 :(得分:1)
从this question开始,我已将Alec Pojidaev(未接受)的答案转换为VB。我还返回了一个整数而不是double:
Public Shared Function GetBusinessDays(startD As DateTime, endD As DateTime) As Integer
Dim calcBusinessDays As Double = 1 + ((endD - startD).TotalDays * 5 - (startD.DayOfWeek - endD.DayOfWeek) * 2) / 7
If CInt(endD.DayOfWeek) = 6 Then
calcBusinessDays -= 1
End If
If CInt(startD.DayOfWeek) = 0 Then
calcBusinessDays -= 1
End If
Return CInt(calcBusinessDays)
End Function
用法:
GetBusinessDays(date1, date2)
顺便说一下,将来,你要找的是如何计算[在这里输入语言] 中两个日期之间的工作日数。通过快速网络搜索,您可以获得许多答案。