I have been working on a Scheduler...\
I came up with a time test that works...
:local timetest [/system clock get time]
:local GST
:if (($timetest>09:00:00)and($timetest<21:20:00)) do={set $GST "1"} else= {set $GST "0"}
:log info "GST Status = $GST"
This is one of the 2 variables I need to monitor.
The problem is that time range needs to be different for each day of the week.
I found this script...
# Calculates day of the week for a givien date
# Month: jan,feb ... nov,dec (must be lower-case)
# Day: 1 - 31
# Year: 1900 - 2999
# mmm/dd/yyyy same format as [/system clock get date]
# (ex. jul/22/2009)
:local date [/system clock get date]
# Math Calculation here
:local result ""
:local months [:toarray "jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec"]
:local monthtbl [:toarray "0,3,3,6,1,4,6,2,5,0,3,5"]
:local daytbl [:toarray "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday"]
:local month [:pick $date 0 3]
:local day [:pick $date 4 6]
:local dayc [:pick $date 5 6]
:local century [:pick $date 7 9]
:local year [:pick $date 9 11]
:local yearc [:pick $date 10 11]
# if the first char is a 0 (zero) only read last char, else script fails
:if ([:pick $date 4 5] = 0) do={ :set day ($dayc)}
:if ([:pick $date 9 10] = 0) do=[:set year ($yearc)]
:local sum 0
:set sum ($sum + (2 * (3 - ($century - (($century / 4) * 4)))))
:set sum ($sum + ($year / 4))
:set sum ($sum + $year + $day)
:for mindex from=0 to=[:len $months] do={
:if ([:pick $months $mindex] = $month) do={:set sum ($sum + [:pick $monthtbl $mindex]) }
}
:set sum ($sum - (($sum / 7) * 7))
:set result [:pick $daytbl $sum]
# END Math Calculation
:put ([:pick $date 0 3] . "/" . [:pick $date 4 6] . "/" . [:pick $date 7 9] . [:pick $date 9 11] . " is on a " . $result)
:log info "Today is $result."
That let me get a day of the week.
What i need is the ability to set my time range per day.
Then the script needs to put that in to the line to monitor it.
I tried making a global variable... then calling it.
:global $GuestSchedule
When i hit
:log info $GuestSchedule
I get
($timetest>09:00:00)and($timetest<21:25:00)
/system script environment> print
NAME VALUE
0 GuestSchedule ($timetest>09:00:00)and($timetest<21:25:00)
Why does this fail?
:if ($GuestSchedule) do={set $GST "1"} else= {set $GST "0"}
I feel like I am missing something small.