Hi,
I was searching a way to calculate the weekday for enabling different HotSpot settings.
This script return the weekday in a global Aweekday variable. Maybe it’s intersting someone else…
Weekday is returned in the following format:
Saturday 0
Sunday 1
Monday 2
Tuesday 3
Wednesday 4
Thursday 5
Friday 6
Working for 1900 to 2099…
Cheers,
Julien Hoppe
http://www.wifx.net
:global Aweekday
:local Hyear
:local Ayear [:pick [/sys clock get date] ([:len [/sys clock get date]] - 4) [:len [/sys clock get date]]]
:local Aday [:tonum [:pick [/sys clock get date] ([:find [/sys clock get date] "/"] + 1) ([:len [/sys clock get date]] - 5)]]
:local Amonth [:pick [/sys clock get date] 0 3]
:if ([:pick $Ayear 2 3] = "0") do={:set Hyear [:tonum [:pick $Ayear 3 4]]} else={:set Hyear [:tonum [:pick $Ayear 2 4]]}
:local res1 ($Hyear / 12)
:local res2 (($Hyear - ($res1 * 12)) / 4)
:local res3 ($res1 + ($Hyear - ($res1 * 12)) + $res2)
:local res4 ($res3 / 7)
:local res5 ($res3 - ($res4 * 7) + $Aday)
:if ([:pick $Ayear 0 1] = "2") do={:set res5 ($res5 - 1)}
:if ($Amonth = "jan") do={
:for wcpt from=0 to=99 step 4 do={
:if ($Hyear = $wcpt) do={:set res5 ($res5 - 1)}
}
:set res5 ($res5 + 1)
:local res6 (($res5) / 7)
:set Aweekday ($res5 - ($res6 * 7))
}
:if ($Amonth = "feb") do={
:for wcpt from=0 to=99 step 4 do={
:if ($Hyear = $wcpt) do={:set res5 ($res5 - 1)}
}
:set res5 ($res5 + 4)
:local res6 (($res5) / 7)
:set Aweekday ($res5 - ($res6 * 7))
}
:if ($Amonth = "mar") do={
:set res5 ($res5 + 4)
:local res6 (($res5) / 7)
:set Aweekday ($res5 - ($res6 * 7))
}
:if ($Amonth = "apr") do={
:set res5 ($res5 + 0)
:local res6 (($res5) / 7)
:set Aweekday ($res5 - ($res6 * 7))
}
:if ($Amonth = "may") do={
:set res5 ($res5 + 2)
:local res6 (($res5) / 7)
:set Aweekday ($res5 - ($res6 * 7))
}
:if ($Amonth = "jun") do={
:set res5 ($res5 + 5)
:local res6 (($res5) / 7)
:set Aweekday ($res5 - ($res6 * 7))
}
:if ($Amonth = "jul") do={
:set res5 ($res5 + 0)
:local res6 (($res5) / 7)
:set Aweekday ($res5 - ($res6 * 7))
}
:if ($Amonth = "aug") do={
:set res5 ($res5 + 3)
:local res6 (($res5) / 7)
:set Aweekday ($res5 - ($res6 * 7))
}
:if ($Amonth = "sep") do={
:set res5 ($res5 + 6)
:local res6 (($res5) / 7)
:set Aweekday ($res5 - ($res6 * 7))
}
:if ($Amonth = "oct") do={
:set res5 ($res5 + 1)
:local res6 (($res5) / 7)
:set Aweekday ($res5 - ($res6 * 7))
}
:if ($Amonth = "nov") do={
:set res5 ($res5 + 4)
:local res6 (($res5) / 7)
:set Aweekday ($res5 - ($res6 * 7))
}
:if ($Amonth = "dec") do={
:set res5 ($res5 + 6)
:local res6 (($res5) / 7)
:set Aweekday ($res5 - ($res6 * 7))
}
:log info ("Aweekday " . $Aweekday)