2017-01-09 4 views
0

У нас есть код, который проверяет каждый входящий файл на 3 разных критерия перед обработкой (не выходные, а не после 6 вечера, а не праздник). При этом мне нужно выяснить, как проверить его на полчаса (выделенная жирным шрифтом). Я попытался добавить + mRelease > 30, а также AND mRelease > 30, и оба они потерпели неудачу. Я изменяя эту строкуРассчитать новое время выпуска для файлов

Do While (WeekDay(dRelease) = 1) OR (WeekDay(dRelease) = 7) OR (UBound(fHoliday) > -1) OR (tRelease >17) 

Вот код в настоящее время на месте:

result = "" 
dRelease = Now 
tRelease = CStr(Hour(Now)) 
mRelease = CStr(Minute(Now)) 

aHoliday = Array("01/02/2017","01/16/2017","05/29/2017","07/04/2017","09/04/2017","10/09/2017","11/23/2017","11/24/2017","12/25/2017","12/26/2017") 
dNow = CStr(DatePart("m",Date)) + "/" + CStr(DatePart("d",Date)) + "/" + CStr(DatePart("yyyy",Date)) 
dMonth = "0" + CStr(Month(dRelease)) 
dDay = "0" + CStr(Day(dRelease)) 
dYear = CStr(Year(dRelease)) 
fHoliday = Filter(aHoliday,Right(dMonth,2) + "/" + Right(dDay,2) + "/" + dYear) 
'fHoliday = Filter(aHoliday,dNow) 
'result = UBound(fHoliday) 
'result = Left(dRelease,10) 
'result = CStr(DatePart("m",Date)) + "/" + CStr(DatePart("d",Date)) + "/" + CStr(DatePart("yyyy",Date)) 
'While release date is a weekend, or release date is a holiday 
Do While (WeekDay(dRelease) = 1) OR (WeekDay(dRelease) = 7) OR (UBound(fHoliday) > -1) OR (tRelease >17) 
    'increase release date by 1 
    dRelease = dRelease + 1 
    'result = dRelease 
    'check for holiday 
    dMonth = "0" + CStr(Month(dRelease)) 
    dDay = "0" + CStr(Day(dRelease)) 
    dYear = CStr(Year(dRelease)) 
    'fHoliday = Filter(aHoliday,Left(dRelease,10)) 
    fHoliday = Filter(aHoliday,Right(dMonth,2) + "/" + Right(dDay,2) + "/" + dYear) 
    tRelease = 00 
Loop 

'Format the release date to the Esker deferred date/time standard. 
dMonth = "0" + CStr(Month(dRelease)) 
dDay = "0" + CStr(Day(dRelease)) 
dYear = CStr(Year(dRelease)) 
dtCurrent = Right(dMonth,2) + "/" + Right(dDay,2) + "/" + dYear 

If dRelease > Now Then 
    tRelease = "00:" + mRelease 
Else 
    tRelease = CStr(Hour(Now)) + ":" + CStr(Minute(Now)) 
End If 

result = dtCurrent + " " + tRelease 
+0

VBScript и VB .NET не то же самое. Что он? –

+1

Что именно должно пройти полчаса? Это то, что файлы могут проходить только в течение первой половины определенного часа? –

+0

В настоящее время он проверяет время. Если после «tRelease> 17» (I.E. 18:00) он будет хранить файл до полуночи. Теперь мне нужно сказать, что если это произойдет после 16:30, держите файл. –

ответ

0

Изменить это:

Do While (WeekDay(dRelease) = 1) OR (WeekDay(dRelease) = 7) OR (UBound(fHoliday) > -1) OR (tRelease >17) 
    ... 
Loop 

в этом:

If (WeekDay(dRelease) = 1) Or (WeekDay(dRelease) = 7) Or (UBound(fHoliday) > -1) Or (Time > CDate("16:30")) Then 
    ... 
End If 
+0

Я получаю эту ошибку: 'Overflow: 'dRelease' @ (22,3): Ошибка выполнения Microsoft VBScript, полный исходный код сценария:' –

+0

'Do While', вероятно, должен быть' If'. В противном случае я ожидаю, что скрипт слишком увеличит 'dRelease' до тех пор, пока дата не изменится или переменная не переполнится. Что наступит раньше. –

 Смежные вопросы

  • Нет связанных вопросов^_^