Note that PowerShell requires defining the function before invoking it, with regards to single-file, sequential ("top-down") processing order.
[powershell]
function Get-TimeWindowStatus {
Param(
[parameter(Mandatory=$true)]$Start,
[parameter(Mandatory=$true)]$End
)
$now = Get-Date
$dif1 = $(New-TimeSpan -Start $Start -End $now).Minutes
$dif2 = $(New-TimeSpan -Start $End -End $now).Minutes
if ($dif1 -lt 0) {
return -1
}
elseif ($dif2 -gt 0) {
return 1
}
else {
return 0
}
}
$d1 = "8/27/2014 9:30:00"
$d2 = "8/27/2014 10:00:00"
switch (Get-TimeWindowStatus -Start $d1 -End $d2) {
-1 {write-host "Maintenance window has not begun."}
1 {write-hsot "Maintenance window has expired."}
default {Write-Host "Maintenance window is active."}
}
[/powershell]
ASP and VBScript on the other hand pre-process script code, so you can define functions anywhere within a given script file, and the location for invoking the function doesn't matter as long as it's in the same file (or loaded in advance using "#include" if using ASP).
[asp]
d1 = "8/26/2014 16:00"
d2 = "8/27/2014 9:00"
Select Case TIME_WINDOW_STATUS (d1, d2)
Case 0: Response.Write "Maintenance window is in effect."
Case 1: Response.Write "Maintenance window has expired."
Case -1: Response.Write "Maintenance window has not begun."
End Select
Function TIME_WINDOW_STATUS (startDT, endDT)
Dim dd1, dd2, result
dd1 = DateDiff("n", d1, NOW)
dd2 = DateDiff("n", d2, NOW)
If dd1 > 0 And dd2 < 0 Then
result = 0
ElseIf dd1 < 0 Then
result = -1
ElseIf dd2 > 0 Then
result = 1
End If
TIME_WINDOW_STATUS = result
End Function
[/asp]
[vbscript]
d1 = "8/26/2014 16:00"
d2 = "8/27/2014 9:00"
Select Case TIME_WINDOW_STATUS (d1, d2)
Case 0: wscript.echo "Maintenance window is in effect."
Case 1: wscript.echo "Maintenance window has expired."
Case -1: wscript.echo "Maintenance window has not begun."
End Select
Dim dd1, dd2, result
dd1 = DateDiff("n", d1, NOW)
dd2 = DateDiff("n", d2, NOW)
If dd1 > 0 And dd2 < 0 Then
result = True
ElseIf dd1 < 0 Then
result = False
ElseIf dd2 > 0 Then
result = False
End If
TIME_WINDOW_STATUS = result
End Function
[/vbscript]
No comments:
Post a Comment