Требуется пояснение в VB Script для выполнения однодневных вычислений

В настоящее время я работаю над определением сценариев рабочих процессов в инструменте управления жизненным циклом приложений HP с использованием VB Script.

Моя проблема в том, что мне нужно сгенерировать таблицу Excel для расчета усилий, приложенных различными разработчиками в конкретном спринте (таймфрейме). В процессе генерации того же самого условия я должен исключить даты выходных (то есть субботу и воскресенье) из графика. Если начальная дата Sprint выпадает на выходные, дата должна автоматически инициализироваться следующим ближайшим понедельником, а если дата окончания спринта приходится на выходные, конечная дата должна отображаться как только что прошедшая пятница. Я подтвердил эти два условия. Я пытаюсь сбрить субботу и воскресенье, которые проходят между этими двумя днями. Пожалуйста, помогите мне в том же. Также, пожалуйста, дайте мне знать, если вам нужны какие-либо материалы с моей стороны.

1 ответ

@ Сабареш, я думаю, это то, что ты ищешь.

Совет: см. Этот ответ для получения информации о загрузке авторитетного справочника 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
Другие вопросы по тегам