8787# Corrections are welcome.
8888
8989# Algeria
90- # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
90+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
9191Rule Algeria 1916 only - Jun 14 23:00s 1:00 S
9292Rule Algeria 1916 1919 - Oct Sun>=1 23:00s 0 -
9393Rule Algeria 1917 only - Mar 24 23:00s 1:00 S
@@ -110,10 +110,9 @@ Rule Algeria 1978 only - Mar 24 1:00 1:00 S
110110Rule Algeria 1978 only - Sep 22 3:00 0 -
111111Rule Algeria 1980 only - Apr 25 0:00 1:00 S
112112Rule Algeria 1980 only - Oct 31 2:00 0 -
113- # Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
114- # more precise 0:09:21.
113+ # See Europe/Paris for PMT-related transitions.
115114# Zone NAME STDOFF RULES FORMAT [UNTIL]
116- Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01
115+ Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 16
117116 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
118117 0:00 Algeria WE%sT 1940 Feb 25 2:00
119118 1:00 Algeria CE%sT 1946 Oct 7
@@ -199,7 +198,7 @@ Link Africa/Abidjan Atlantic/St_Helena # St Helena
199198# Egypt was mean noon at the Great Pyramid, 2:04:30.5, but apparently this
200199# did not apply to Cairo, Alexandria, or Port Said.
201200
202- # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
201+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
203202Rule Egypt 1940 only - Jul 15 0:00 1:00 S
204203Rule Egypt 1940 only - Oct 1 0:00 0 -
205204Rule Egypt 1941 only - Apr 15 0:00 1:00 S
@@ -434,7 +433,7 @@ Zone Africa/Cairo 2:05:09 - LMT 1900 Oct
434433# now Ghana observed different DST regimes in different years. For
435434# lack of better info, use Shanks except treat the minus sign as a
436435# typo, and assume DST started in 1920 not 1936.
437- # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
436+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
438437Rule Ghana 1920 1942 - Sep 1 0:00 0:20 -
439438Rule Ghana 1920 1942 - Dec 31 0:00 0 -
440439# Zone NAME STDOFF RULES FORMAT [UNTIL]
@@ -524,7 +523,7 @@ Zone Africa/Monrovia -0:43:08 - LMT 1882
524523# From Paul Eggert (2013-10-25):
525524# For now, assume they're reverting to the pre-2012 rules of permanent UT +02.
526525
527- # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
526+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
528527Rule Libya 1951 only - Oct 14 2:00 1:00 S
529528Rule Libya 1952 only - Jan 1 0:00 0 -
530529Rule Libya 1953 only - Oct 9 2:00 1:00 S
@@ -647,7 +646,7 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920
647646# "The trial ended on March 29, 2009, when the clocks moved back by one hour
648647# at 2am (or 02:00) local time..."
649648
650- # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
649+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
651650Rule Mauritius 1982 only - Oct 10 0:00 1:00 -
652651Rule Mauritius 1983 only - Mar 21 0:00 0 -
653652Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 -
@@ -898,17 +897,30 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
898897# https://maroc-diplomatique.net/maroc-le-retour-a-lheure-gmt-est-prevu-dimanche-prochain/
899898# http://aujourdhui.ma/actualite/gmt1-retour-a-lheure-normale-dimanche-prochain-1
900899#
901- # From Paul Eggert (2020-04-14):
900+ # From Milamber (2020-05-31)
901+ # In Morocco (where I live), the end of Ramadan (Arabic month) is followed by
902+ # the Eid al-Fitr, and concretely it's 1 or 2 day offs for the people (with
903+ # traditional visiting of family, big lunches/dinners, etc.). So for this
904+ # year the astronomical calculations don't include the following 2 days off in
905+ # the calc. These 2 days fall in a Sunday/Monday, so it's not acceptable by
906+ # people to have a time shift during these 2 days off. Perhaps you can modify
907+ # the (predicted) rules for next years: if the end of Ramadan is a (probable)
908+ # Friday or Saturday (and so the 2 days off are on a weekend), the next time
909+ # shift will be the next weekend.
910+ #
911+ # From Paul Eggert (2020-05-31):
902912# For now, guess that in the future Morocco will fall back at 03:00
903913# the last Sunday before Ramadan, and spring forward at 02:00 the
904- # first Sunday after the day after Ramadan. To implement this,
905- # transition dates for 2021 through 2087 were determined by running
906- # the following program under GNU Emacs 26.3.
907- # (let ((islamic-year 1442))
914+ # first Sunday after two days after Ramadan. To implement this,
915+ # transition dates and times for 2019 through 2087 were determined by
916+ # running the following program under GNU Emacs 26.3. (This algorithm
917+ # also produces the correct transition dates for 2016 through 2018,
918+ # though the times differ due to Morocco's time zone change in 2018.)
919+ # (let ((islamic-year 1440))
908920# (require 'cal-islam)
909921# (while (< islamic-year 1511)
910922# (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
911- # (b (1+ (calendar-islamic-to-absolute (list 10 1 islamic-year))))
923+ # (b (+ 2 (calendar-islamic-to-absolute (list 10 1 islamic-year))))
912924# (sunday 0))
913925# (while (/= sunday (mod (setq a (1- a)) 7)))
914926# (while (/= sunday (mod b 7))
@@ -923,7 +935,7 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
923935# (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b)))))
924936# (setq islamic-year (+ 1 islamic-year))))
925937
926- # RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S
938+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
927939Rule Morocco 1939 only - Sep 12 0:00 1:00 -
928940Rule Morocco 1939 only - Nov 19 0:00 0 -
929941Rule Morocco 1940 only - Feb 25 0:00 1:00 -
@@ -974,7 +986,7 @@ Rule Morocco 2021 only - May 16 2:00 0 -
974986Rule Morocco 2022 only - Mar 27 3:00 -1:00 -
975987Rule Morocco 2022 only - May 8 2:00 0 -
976988Rule Morocco 2023 only - Mar 19 3:00 -1:00 -
977- Rule Morocco 2023 only - Apr 23 2:00 0 -
989+ Rule Morocco 2023 only - Apr 30 2:00 0 -
978990Rule Morocco 2024 only - Mar 10 3:00 -1:00 -
979991Rule Morocco 2024 only - Apr 14 2:00 0 -
980992Rule Morocco 2025 only - Feb 23 3:00 -1:00 -
@@ -990,7 +1002,7 @@ Rule Morocco 2029 only - Feb 18 2:00 0 -
9901002Rule Morocco 2029 only - Dec 30 3:00 -1:00 -
9911003Rule Morocco 2030 only - Feb 10 2:00 0 -
9921004Rule Morocco 2030 only - Dec 22 3:00 -1:00 -
993- Rule Morocco 2031 only - Jan 26 2:00 0 -
1005+ Rule Morocco 2031 only - Feb 2 2:00 0 -
9941006Rule Morocco 2031 only - Dec 14 3:00 -1:00 -
9951007Rule Morocco 2032 only - Jan 18 2:00 0 -
9961008Rule Morocco 2032 only - Nov 28 3:00 -1:00 -
@@ -1006,7 +1018,7 @@ Rule Morocco 2036 only - Nov 23 2:00 0 -
10061018Rule Morocco 2037 only - Oct 4 3:00 -1:00 -
10071019Rule Morocco 2037 only - Nov 15 2:00 0 -
10081020Rule Morocco 2038 only - Sep 26 3:00 -1:00 -
1009- Rule Morocco 2038 only - Oct 31 2:00 0 -
1021+ Rule Morocco 2038 only - Nov 7 2:00 0 -
10101022Rule Morocco 2039 only - Sep 18 3:00 -1:00 -
10111023Rule Morocco 2039 only - Oct 23 2:00 0 -
10121024Rule Morocco 2040 only - Sep 2 3:00 -1:00 -
@@ -1022,7 +1034,7 @@ Rule Morocco 2044 only - Aug 28 2:00 0 -
10221034Rule Morocco 2045 only - Jul 9 3:00 -1:00 -
10231035Rule Morocco 2045 only - Aug 20 2:00 0 -
10241036Rule Morocco 2046 only - Jul 1 3:00 -1:00 -
1025- Rule Morocco 2046 only - Aug 5 2:00 0 -
1037+ Rule Morocco 2046 only - Aug 12 2:00 0 -
10261038Rule Morocco 2047 only - Jun 23 3:00 -1:00 -
10271039Rule Morocco 2047 only - Jul 28 2:00 0 -
10281040Rule Morocco 2048 only - Jun 7 3:00 -1:00 -
@@ -1038,7 +1050,7 @@ Rule Morocco 2052 only - Jun 2 2:00 0 -
10381050Rule Morocco 2053 only - Apr 13 3:00 -1:00 -
10391051Rule Morocco 2053 only - May 25 2:00 0 -
10401052Rule Morocco 2054 only - Apr 5 3:00 -1:00 -
1041- Rule Morocco 2054 only - May 10 2:00 0 -
1053+ Rule Morocco 2054 only - May 17 2:00 0 -
10421054Rule Morocco 2055 only - Mar 28 3:00 -1:00 -
10431055Rule Morocco 2055 only - May 2 2:00 0 -
10441056Rule Morocco 2056 only - Mar 12 3:00 -1:00 -
@@ -1054,7 +1066,7 @@ Rule Morocco 2060 only - Mar 7 2:00 0 -
10541066Rule Morocco 2061 only - Jan 16 3:00 -1:00 -
10551067Rule Morocco 2061 only - Feb 27 2:00 0 -
10561068Rule Morocco 2062 only - Jan 8 3:00 -1:00 -
1057- Rule Morocco 2062 only - Feb 12 2:00 0 -
1069+ Rule Morocco 2062 only - Feb 19 2:00 0 -
10581070Rule Morocco 2062 only - Dec 31 3:00 -1:00 -
10591071Rule Morocco 2063 only - Feb 4 2:00 0 -
10601072Rule Morocco 2063 only - Dec 16 3:00 -1:00 -
@@ -1070,7 +1082,7 @@ Rule Morocco 2067 only - Dec 11 2:00 0 -
10701082Rule Morocco 2068 only - Oct 21 3:00 -1:00 -
10711083Rule Morocco 2068 only - Dec 2 2:00 0 -
10721084Rule Morocco 2069 only - Oct 13 3:00 -1:00 -
1073- Rule Morocco 2069 only - Nov 17 2:00 0 -
1085+ Rule Morocco 2069 only - Nov 24 2:00 0 -
10741086Rule Morocco 2070 only - Oct 5 3:00 -1:00 -
10751087Rule Morocco 2070 only - Nov 9 2:00 0 -
10761088Rule Morocco 2071 only - Sep 20 3:00 -1:00 -
@@ -1086,7 +1098,7 @@ Rule Morocco 2075 only - Sep 15 2:00 0 -
10861098Rule Morocco 2076 only - Jul 26 3:00 -1:00 -
10871099Rule Morocco 2076 only - Sep 6 2:00 0 -
10881100Rule Morocco 2077 only - Jul 18 3:00 -1:00 -
1089- Rule Morocco 2077 only - Aug 22 2:00 0 -
1101+ Rule Morocco 2077 only - Aug 29 2:00 0 -
10901102Rule Morocco 2078 only - Jul 10 3:00 -1:00 -
10911103Rule Morocco 2078 only - Aug 14 2:00 0 -
10921104Rule Morocco 2079 only - Jun 25 3:00 -1:00 -
@@ -1096,13 +1108,13 @@ Rule Morocco 2080 only - Jul 21 2:00 0 -
10961108Rule Morocco 2081 only - Jun 1 3:00 -1:00 -
10971109Rule Morocco 2081 only - Jul 13 2:00 0 -
10981110Rule Morocco 2082 only - May 24 3:00 -1:00 -
1099- Rule Morocco 2082 only - Jun 28 2:00 0 -
1111+ Rule Morocco 2082 only - Jul 5 2:00 0 -
11001112Rule Morocco 2083 only - May 16 3:00 -1:00 -
11011113Rule Morocco 2083 only - Jun 20 2:00 0 -
11021114Rule Morocco 2084 only - Apr 30 3:00 -1:00 -
11031115Rule Morocco 2084 only - Jun 11 2:00 0 -
11041116Rule Morocco 2085 only - Apr 22 3:00 -1:00 -
1105- Rule Morocco 2085 only - May 27 2:00 0 -
1117+ Rule Morocco 2085 only - Jun 3 2:00 0 -
11061118Rule Morocco 2086 only - Apr 14 3:00 -1:00 -
11071119Rule Morocco 2086 only - May 19 2:00 0 -
11081120Rule Morocco 2087 only - Mar 30 3:00 -1:00 -
@@ -1203,7 +1215,7 @@ Link Africa/Maputo Africa/Lusaka # Zambia
12031215# Use plain "WAT" and "CAT" for the time zone abbreviations, to be compatible
12041216# with Namibia's neighbors.
12051217
1206- # RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S
1218+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
12071219# Vanguard section, for zic and other parsers that support negative DST.
12081220Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT
12091221Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
@@ -1326,7 +1338,7 @@ Zone Indian/Mahe 3:41:48 - LMT 1906 Jun # Victoria
13261338# See Africa/Nairobi.
13271339
13281340# South Africa
1329- # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
1341+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
13301342Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 -
13311343Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
13321344# Zone NAME STDOFF RULES FORMAT [UNTIL]
@@ -1359,7 +1371,7 @@ Link Africa/Johannesburg Africa/Mbabane # Eswatini
13591371# Abdalla of NTC, archived at:
13601372# https://mm.icann.org/pipermail/tz/2017-October/025333.html
13611373
1362- # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
1374+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
13631375Rule Sudan 1970 only - May 1 0:00 1:00 S
13641376Rule Sudan 1970 1985 - Oct 15 0:00 0 -
13651377Rule Sudan 1971 only - Apr 30 0:00 1:00 S
@@ -1447,7 +1459,7 @@ Zone Africa/Juba 2:06:28 - LMT 1931
14471459# http://www.almadenahnews.com/newss/news.php?c=118&id=38036
14481460# http://www.worldtimezone.com/dst_news/dst_news_tunis02.html
14491461
1450- # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
1462+ # Rule NAME FROM TO - IN ON AT SAVE LETTER/S
14511463Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S
14521464Rule Tunisia 1939 only - Nov 18 23:00s 0 -
14531465Rule Tunisia 1940 only - Feb 25 23:00s 1:00 S
@@ -1474,9 +1486,7 @@ Rule Tunisia 2005 only - Sep 30 1:00s 0 -
14741486Rule Tunisia 2006 2008 - Mar lastSun 2:00s 1:00 S
14751487Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 -
14761488
1477- # Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
1478- # more precise 0:09:21.
1479- # Shanks & Pottenger say the 1911 switch was on Mar 9; go with Howse's Mar 11.
1489+ # See Europe/Paris for PMT-related transitions.
14801490# Zone NAME STDOFF RULES FORMAT [UNTIL]
14811491Zone Africa/Tunis 0:40:44 - LMT 1881 May 12
14821492 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time
0 commit comments