2016-04-21 58 views
1

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

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

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

代码示例:(ⅰ使用我的表中的一个作为表达式)

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

Verdolino:谢谢你的版本 –

回答

1

this question,我已经转换艾力Pojidaev的(不接受)回答到VB。我也返回一个整数,而不是双:

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) 

BTW,在未来,你要找的是如何在两个日期之间计算的工作日数[在这里输入语言]。一个快速的网络搜索会给你带来很多答案。

+0

1º:我没有做网络这一个搜索,找不到任何会适合我的情况下 2º:我使用的标记告诉我使用 –

+0

的语言也,我有点需要在表达式上使用它,所以“用法”部分不适合。但我会尽量适应。谢谢! –

+0

你得到想法 – djv