Vadim
June 26, 2006, 5:26pm
1
Hi,
It could be nice to add a European (and Latvian too ) DST rule into /system clock dst, just a simple function like this:
day of start: (31 - (5 * yyyy / 4 + 4) mod 7) March
day of end: (31 - (5 * yyyy / 4 + 1) mod 7) October
where yyyy - current year between 2000 and 2099.
I have a slight interest in this too, however, I don’t forsee this becoming a real function within RouterOS, but perhaps a user script that someone can make and distribute?
Vadim
June 27, 2006, 10:22am
3
ktw-matt:
I have a slight interest in this too, however, I don’t forsee this becoming a real function within RouterOS, but perhaps a user script that someone can make and distribute?
Stupid, but working solution :
system script> pr
0 name="DST" owner="Vadim" policy=read,write last-started=mar/26/2006 01:00:00 run-count=19
source=
:local a [:pick [system clock get date] 7 11];
:if ($a = 2006) do={/system clock dst set dst-start="mar/26/2006 01:00:00" dst-end="oct/29/2006 01:00:00"};
:if ($a = 2007) do={/system clock dst set dst-start="mar/25/2007 01:00:00" dst-end="oct/28/2007 01:00:00"};
:if ($a = 2008) do={/system clock dst set dst-start="mar/30/2008 01:00:00" dst-end="oct/26/2008 01:00:00"};
:if ($a = 2009) do={/system clock dst set dst-start="mar/29/2009 01:00:00" dst-end="oct/25/2009 01:00:00"};
:if ($a = 2010) do={/system clock dst set dst-start="mar/28/2010 01:00:00" dst-end="oct/31/2010 01:00:00"};
:if ($a = 2011) do={/system clock dst set dst-start="mar/27/2011 01:00:00" dst-end="oct/30/2011 01:00:00"};
:if ($a = 2012) do={/system clock dst set dst-start="mar/25/2012 01:00:00" dst-end="oct/28/2012 01:00:00"};
:if ($a = 2013) do={/system clock dst set dst-start="mar/31/2013 01:00:00" dst-end="oct/27/2013 01:00:00"};
:if ($a = 2014) do={/system clock dst set dst-start="mar/30/2014 01:00:00" dst-end="oct/26/2014 01:00:00"};
:if ($a = 2015) do={/system clock dst set dst-start="mar/29/2015 01:00:00" dst-end="oct/25/2015 01:00:00"};
:if ($a = 2016) do={/system clock dst set dst-start="mar/27/2016 01:00:00" dst-end="oct/30/2016 01:00:00"};
:if ($a = 2017) do={/system clock dst set dst-start="mar/26/2017 01:00:00" dst-end="oct/29/2017 01:00:00"};
:if ($a = 2018) do={/system clock dst set dst-start="mar/25/2018 01:00:00" dst-end="oct/28/2018 01:00:00"};
:if ($a = 2019) do={/system clock dst set dst-start="mar/31/2019 01:00:00" dst-end="oct/27/2019 01:00:00"};
:if ($a = 2020) do={/system clock dst set dst-start="mar/29/2020 01:00:00" dst-end="oct/25/2020 01:00:00"};
:if ($a = 2021) do={/system clock dst set dst-start="mar/28/2021 01:00:00" dst-end="oct/31/2021 01:00:00"};
:if ($a = 2022) do={/system clock dst set dst-start="mar/27/2022 01:00:00" dst-end="oct/30/2022 01:00:00"};
:if ($a = 2023) do={/system clock dst set dst-start="mar/26/2023 01:00:00" dst-end="oct/29/2023 01:00:00"};
:if ($a = 2024) do={/system clock dst set dst-start="mar/31/2024 01:00:00" dst-end="oct/27/2024 01:00:00"};
:if ($a = 2025) do={/system clock dst set dst-start="mar/30/2025 01:00:00" dst-end="oct/26/2025 01:00:00"};
:if ($a = 2026) do={/system clock dst set dst-start="mar/29/2026 01:00:00" dst-end="oct/25/2026 01:00:00"};
:if ($a = 2027) do={/system clock dst set dst-start="mar/28/2027 01:00:00" dst-end="oct/31/2027 01:00:00"};
:if ($a = 2028) do={/system clock dst set dst-start="mar/26/2028 01:00:00" dst-end="oct/29/2028 01:00:00"};
:if ($a = 2029) do={/system clock dst set dst-start="mar/25/2029 01:00:00" dst-end="oct/28/2029 01:00:00"};
:if ($a = 2030) do={/system clock dst set dst-start="mar/31/2030 01:00:00" dst-end="oct/27/2030 01:00:00"};
:if ($a = 2031) do={/system clock dst set dst-start="mar/30/2031 01:00:00" dst-end="oct/26/2031 01:00:00"};
:if ($a = 2032) do={/system clock dst set dst-start="mar/28/2032 01:00:00" dst-end="oct/31/2032 01:00:00"};
:if ($a = 2033) do={/system clock dst set dst-start="mar/27/2033 01:00:00" dst-end="oct/30/2033 01:00:00"};
:if ($a = 2034) do={/system clock dst set dst-start="mar/26/2034 01:00:00" dst-end="oct/29/2034 01:00:00"};
:if ($a = 2035) do={/system clock dst set dst-start="mar/25/2035 01:00:00" dst-end="oct/28/2035 01:00:00"};
:if ($a = 2036) do={/system clock dst set dst-start="mar/30/2036 01:00:00" dst-end="oct/26/2036 01:00:00"};
:if ($a = 2037) do={/system clock dst set dst-start="mar/29/2037 01:00:00" dst-end="oct/25/2037 01:00:00"};
:if ($a = 2038) do={/system clock dst set dst-start="mar/28/2038 01:00:00" dst-end="oct/31/2038 01:00:00"};
:if ($a = 2039) do={/system clock dst set dst-start="mar/27/2039 01:00:00" dst-end="oct/30/2039 01:00:00"};
:if ($a = 2040) do={/system clock dst set dst-start="mar/25/2040 01:00:00" dst-end="oct/28/2040 01:00:00"};
:if ($a = 2041) do={/system clock dst set dst-start="mar/31/2041 01:00:00" dst-end="oct/27/2041 01:00:00"};
:if ($a = 2042) do={/system clock dst set dst-start="mar/30/2042 01:00:00" dst-end="oct/26/2042 01:00:00"};
:if ($a = 2043) do={/system clock dst set dst-start="mar/29/2043 01:00:00" dst-end="oct/25/2043 01:00:00"};
:if ($a = 2044) do={/system clock dst set dst-start="mar/27/2044 01:00:00" dst-end="oct/30/2044 01:00:00"};
:if ($a = 2045) do={/system clock dst set dst-start="mar/26/2045 01:00:00" dst-end="oct/29/2045 01:00:00"};
:if ($a = 2046) do={/system clock dst set dst-start="mar/25/2046 01:00:00" dst-end="oct/28/2046 01:00:00"};
system scheduler> pr
Flags: X - disabled
# NAME ON-EVENT START-DATE START-TIME INTERVAL RUN-COUNT
0 DST DST jan/01/1970 00:00:00 52w1d6h 2
:local year [:pick [system clock get date] 7 11]
:local start-tmp (5 * $year / 4 + 4)
:local start-day (31 - ($start-tmp - ($start-tmp / 7) * 7))
:local start ("Mar/" . $start-day . "/" . $year . " " . "02:00:00")
:local end-tmp (5 * $year / 4 + 1)
:local end-day (31 - ($end-tmp - ($end-tmp / 7) * 7))
:local end ("Oct/" . $end-day . "/" . $year . " " . "02:00:00")
system clock dst set dst-start=$start
system clock dst set dst-end=$end
abyss
August 17, 2006, 6:39am
5
Since version 2.9.28:
:local year [:pick [system clock get date] 7 11]
:local start-tmp (5 * $year / 4 + 4)
:local start-day (31 - ($start-tmp - ($start-tmp / 7) * 7))
:local start ("Mar/" . $start-day . "/" . $year . " " . "02:00:00")
:local end-tmp (5 * $year / 4 + 1)
:local end-day (31 - ($end-tmp - ($end-tmp / 7) * 7))
:local end ("Oct/" . $end-day . "/" . $year . " " . "02:00:00")
system clock manual set dst-start=$start
system clock manual set dst-end=$end
normis
August 17, 2006, 6:45am
6