如何计算报表查看器表达式的日期之间的时间

时间:2016-04-21 15:03:45

标签: vb.net reportviewer

我有一个程序使用报告查看器向用户显示各种类型的数据,我需要其中一个(基本上)计算两个日期之间的天数没有周末(即:从周五到周一,应该显示2而不是4)。

到目前为止,我可以用周末来计算它。

如果有人知道如何,我会很感激。

代码示例:(我在其中一个表上使用的公式作为表达式)

CInt(Avg(DateDiff(dateinterval.DayOfYear, 
                  Fields!DataEntregue.Value, 
                  Fields!DataPrevista.Value, 
                  FirstDayofWeek.Monday)))

1 个答案:

答案 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)

顺便说一下,将来,你要找的是如何计算[在这里输入语言] 中两个日期之间的工作日数。通过快速网络搜索,您可以获得许多答案。