0

我目前正在使用 VB 脚本在 HP Application Lifecycle 管理工具中定义工作流脚本。

我的问题是我必须生成一个 Excel 图表来计算各个开发人员在特定 Sprint(时间范围)中所做的努力。在生成相同的过程中,我的条件是从图表中消除周末日期(即周六和周日)。如果 Sprint 开始日期在周末,则应自动将日期初始化为下一个紧接的星期一,如果 Sprint 结束日期在周末,则结束日期应显示为刚刚过去的星期五。我已经验证了这两个条件。我正在努力减少这两天之间的周六和周日。请帮助我。如果您需要我方面的任何意见,也请告诉我。

4

1 回答 1

0

@Sabaresh,我相信这就是你要找的。

提示:有关将 Microsoft 的权威 WSH 参考下载为 Windows 帮助文件的信息,请参阅此答案。

Option Explicit

Dim dCandidateDate, dActualStartDate, dActualEndDate

dCandidateDate = CDate("2012/08/18")
dActualStartDate = SprintStartDate(dCandidateDate)

dCandidateDate = CDate("2012/09/16")
dActualEndDate   = SprintEndDate(dCandidateDate)

WScript.Echo "Sprint date range: " _
       & dActualStartDate & " through " & dActualEndDate

'
' Return following Monday if dCandidateDate is
' Saturday or Sunday.
'
Function SprintStartDate(dCandidateDate)
    Dim nWeekday : nWeekday = DatePart("w", dCandidateDate)
    Select Case nWeekday
        Case 7  ' Saturday
            SprintStartDate = DateAdd("d", 2, dCandidateDate)
        Case 1  ' Sunday
            SprintStartDate = DateAdd("d", 1, dCandidateDate)
        Case Else
            SprintStartDate = dCandidateDate
    End Select
End Function

'
' Return previous Friday if dCandidateDate is
' Saturday or Sunday.
'
Function SprintEndDate(dCandidateDate)
    Dim nWeekday : nWeekday = DatePart("w", dCandidateDate)
    Select Case nWeekday
        Case 7  ' Saturday
            SprintEndDate = DateAdd("d", -1, dCandidateDate)
        Case 1  ' Sunday
            SprintEndDate = DateAdd("d", -2, dCandidateDate)
        Case Else
            SprintEndDate = dCandidateDate
    End Select
End Function
于 2012-08-17T23:58:20.007 回答