2012-08-17 35 views
0

我目前正在使用VB腳本在HP應用程序生命週期管理工具中定義工作流腳本。需要在VB腳本中進行說明以執行一些日計算

我的問題是我必須生成一個Excel圖表來計算各個開發人員在特定Sprint(時間範圍)中所做的努力。在生成相同的過程中,我的條件是從圖表中消除週末日期(即週六和週日)。如果Sprint開始日期在週末,則自動將日期初始化爲下一個即時星期一,並且如果Sprint結束日期在週末結束,則結束日期應顯示爲剛過去的星期五。我已經驗證了這兩個條件。我試圖削減這兩天之間進入的週六和週日。請幫助我一樣。如果您需要我的任何輸入,請讓我知道。

+0

您需要顯示一些代碼才能讓任何人幫助您。就目前來看,這個問題非常模糊。 – 2012-08-17 07:29:52

回答

0

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

提示:請參閱this answer瞭解有關將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