2017-01-09 4 views
0

Wir haben einen Code, der jede eingehende Datei gegen 3 verschiedene Kriterien vor der Verarbeitung prüft (Nicht ein Wochenende, nicht nach 18 Uhr, kein Feiertag). Nachdem ich das gesagt habe, muss ich herausfinden, wie ich es jetzt für eine halbe Stunde überprüfen lassen kann (fettgedruckter Teil). Ich habe versucht, eine + mRelease > 30 sowie AND mRelease > 30 hinzuzufügen und beide sind fehlgeschlagen. Ich habe zu ändern diese ZeileBerechne neue Veröffentlichungszeit für Dateien

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

Hier den Code wird zur Zeit an Ort und Stelle:

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 und VB .NET ist nicht das Gleiche. Welches ist es? –

+1

Was genau soll die halbe Stunde erreichen? Können Dateien nur für die erste Hälfte einer bestimmten Stunde durchkommen? –

+0

Derzeit überprüfen Sie die Zeit. Wenn es nach dem "tRelease> 17" (I.E. 18:00) ist, wird es die Datei bis nach Mitternacht halten. Was ich jetzt brauche ist zu sagen, wenn es nach 16:30 Uhr ist, halte die Datei. –

Antwort

0

ändern diese:

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

in diese:

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

Ich erhalte diesen Fehler: 'Überlauf: 'dRelease' @ (22,3): Microsoft VBScript-Laufzeitfehler, vollständige Skriptquelle ist:' –

+0

Die 'Do While' sollte wahrscheinlich ein' If' sein. Andernfalls würde ich erwarten, dass das Skript "dRelease" inkrementiert, bis sich das Datum ändert oder die Variable überläuft. Welches auch immer zuerst kommt. –

Verwandte Themen