about summary refs log tree commit diff
path: root/time
diff options
context:
space:
mode:
Diffstat (limited to 'time')
-rw-r--r--time/asia73
-rw-r--r--time/australasia10
-rw-r--r--time/difftime.c44
-rw-r--r--time/europe30
-rw-r--r--time/northamerica6
-rw-r--r--time/southamerica6
-rw-r--r--time/zic.c4
7 files changed, 119 insertions, 54 deletions
diff --git a/time/asia b/time/asia
index 7afe922bf4..07cdb113c4 100644
--- a/time/asia
+++ b/time/asia
@@ -1,4 +1,4 @@
-# @(#)asia	7.26
+# @(#)asia	7.27
 
 # This data is by no means authoritative; if you think you know better,
 # go ahead and edit the file (and please send any changes to
@@ -354,6 +354,26 @@ Zone Asia/Jayapura	9:22:48 -	LMT	1932 Nov
 			9:00	-	JAYT
 
 # Iran
+# From Paul Eggert (1996-12-17), following up a suggestion by Rich Wales:
+# Ahmad Alavi <URL:http://tehran.stanford.edu/Iran_Lib/Calendar/taghveem.txt>
+# (1993-08-04) writes ``Daylight saving time in Iran starts from the first day
+# of Farvardin and ends the first day of Mehr.''  This disagrees with the SSIM:
+#
+#		   DST start	   DST end
+#	year	SSIM	Alavi	SSIM	Alavi
+#	1991	05-03!=	03-21	09-20!=	09-23
+#	1992	03-22!=	03-21	09-23	09-23
+#	1993	03-21	03-21	09-23	09-23
+#	1994	03-21	03-21	09-22!= 09-23
+#	1995	03-21	03-21	09-22!= 09-23
+#	1996	03-21!=	03-20	09-21!= 09-22
+#	1997	03-21	03-21	09-21!= 09-23
+#
+# Go with Alavi starting with 1992.
+# I used Ed Reingold's cal-persia in GNU Emacs 19.34 to compute Persian dates.
+# The Persian calendar is based on the sun, and dates after around 2050
+# are approximate; stop after 2037 when 32-bit time_t's overflow.
+#
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Iran	1978	1980	-	Mar	21	0:00	1:00	S
 Rule	Iran	1978	only	-	Oct	21	0:00	0	-
@@ -361,11 +381,50 @@ Rule	Iran	1979	only	-	Sep	19	0:00	0	-
 Rule	Iran	1980	only	-	Sep	23	0:00	0	-
 Rule	Iran	1991	only	-	May	 3	0:00s	1:00	S
 Rule	Iran	1991	only	-	Sep	20	0:00s	0	-
-Rule	Iran	1992	only	-	Mar	22	0:00	1:00	S
-Rule	Iran	1992	1993	-	Sep	23	0:00	0	-
-Rule	Iran	1993	max	-	Mar	21	0:00	1:00	S
-Rule	Iran	1994	1995	-	Sep	22	0:00	0	-
-Rule	Iran	1996	max	-	Sep	21	0:00	0	-
+Rule	Iran	1992	1995	-	Mar	21	0:00	1:00	S
+Rule	Iran	1992	1995	-	Sep	23	0:00	0	-
+Rule	Iran	1996	only	-	Mar	20	0:00	1:00	S
+Rule	Iran	1996	only	-	Sep	22	0:00	0	-
+Rule	Iran	1997	1999	-	Mar	21	0:00	1:00	S
+Rule	Iran	1997	1999	-	Sep	23	0:00	0	-
+Rule	Iran	2000	only	-	Mar	20	0:00	1:00	S
+Rule	Iran	2000	only	-	Sep	22	0:00	0	-
+Rule	Iran	2001	2003	-	Mar	21	0:00	1:00	S
+Rule	Iran	2001	2003	-	Sep	23	0:00	0	-
+Rule	Iran	2004	only	-	Mar	20	0:00	1:00	S
+Rule	Iran	2004	only	-	Sep	22	0:00	0	-
+Rule	Iran	2005	2007	-	Mar	21	0:00	1:00	S
+Rule	Iran	2005	2007	-	Sep	23	0:00	0	-
+Rule	Iran	2008	only	-	Mar	20	0:00	1:00	S
+Rule	Iran	2008	only	-	Sep	22	0:00	0	-
+Rule	Iran	2009	2011	-	Mar	21	0:00	1:00	S
+Rule	Iran	2009	2011	-	Sep	23	0:00	0	-
+Rule	Iran	2012	only	-	Mar	20	0:00	1:00	S
+Rule	Iran	2012	only	-	Sep	22	0:00	0	-
+Rule	Iran	2013	2015	-	Mar	21	0:00	1:00	S
+Rule	Iran	2013	2015	-	Sep	23	0:00	0	-
+Rule	Iran	2016	only	-	Mar	20	0:00	1:00	S
+Rule	Iran	2016	only	-	Sep	22	0:00	0	-
+Rule	Iran	2017	2019	-	Mar	21	0:00	1:00	S
+Rule	Iran	2017	2019	-	Sep	23	0:00	0	-
+Rule	Iran	2020	only	-	Mar	20	0:00	1:00	S
+Rule	Iran	2020	only	-	Sep	22	0:00	0	-
+Rule	Iran	2021	2023	-	Mar	21	0:00	1:00	S
+Rule	Iran	2021	2023	-	Sep	23	0:00	0	-
+Rule	Iran	2024	2025	-	Mar	20	0:00	1:00	S
+Rule	Iran	2024	2025	-	Sep	22	0:00	0	-
+Rule	Iran	2026	2027	-	Mar	21	0:00	1:00	S
+Rule	Iran	2026	2027	-	Sep	23	0:00	0	-
+Rule	Iran	2028	2029	-	Mar	20	0:00	1:00	S
+Rule	Iran	2028	2029	-	Sep	22	0:00	0	-
+Rule	Iran	2030	2031	-	Mar	21	0:00	1:00	S
+Rule	Iran	2030	2031	-	Sep	23	0:00	0	-
+Rule	Iran	2032	2033	-	Mar	20	0:00	1:00	S
+Rule	Iran	2032	2033	-	Sep	22	0:00	0	-
+Rule	Iran	2034	2035	-	Mar	21	0:00	1:00	S
+Rule	Iran	2034	2035	-	Sep	23	0:00	0	-
+Rule	Iran	2036	2037	-	Mar	20	0:00	1:00	S
+Rule	Iran	2036	2037	-	Sep	22	0:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Tehran	3:25:44	-	LMT	1916
 			3:25:44	-	TMT	1946	# Tehran Mean Time
@@ -492,7 +551,7 @@ Rule	Zion	1995	only	-	Sep	 3	0:00	0	S
 #
 #   ftp://ftp.huji.ac.il/pub/misc/timezones/announcements/1996-1998.ps.gz
 #
-# Emptor Caveat: The dates for the years 1996-1998 were originally announced
+# Caveat emptor: The dates for the years 1996-1998 were originally announced
 # on 1995-08-31, by the previous Minister of Interior.  The new Minister
 # of Interior changed the dates on 1996-01-01, to take into account the
 # desires of certain portions of Israeli society (the next election is in the
diff --git a/time/australasia b/time/australasia
index be15771b07..811e569127 100644
--- a/time/australasia
+++ b/time/australasia
@@ -1,4 +1,4 @@
-# @(#)australasia	7.30
+# @(#)australasia	7.31
 # This file also includes Pacific islands.
 
 # Notes are at the end of this file
@@ -48,15 +48,15 @@ Zone Australia/Perth	 7:43:24 -	LMT	1895 Dec
 # so use Lindeman.
 #
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	QL	1989	1991	-	Oct	lastSun	2:00s	1:00	-
-Rule	QL	1990	1992	-	Mar	Sun>=1	2:00s	0	-
+Rule	AQ	1989	1991	-	Oct	lastSun	2:00s	1:00	-
+Rule	AQ	1990	1992	-	Mar	Sun>=1	2:00s	0	-
 Rule	Holiday	1989	1993	-	Oct	lastSun	2:00s	1:00	-
 Rule	Holiday	1990	1994	-	Mar	Sun>=1	2:00s	0	-
 Zone Australia/Brisbane	10:12:08 -	LMT	1895
 			10:00	-	EST	1917 Jan 1 0:01
 			10:00	Aus	EST	1971 Oct lastSun 2:00s
 			10:00	1:00	EST	1972 Feb lastSun 2:00s
-			10:00	QL	EST
+			10:00	AQ	EST
 Zone Australia/Lindeman  9:55:56 -	LMT	1895
 			10:00	-	EST	1917 Jan 1 0:01
 			10:00	Aus	EST	1971 Oct lastSun 2:00s
@@ -339,7 +339,7 @@ Zone Pacific/Palau	8:57:56 -	LMT	1901		# Koror
 			9:00	-	PWT	# Palau Time
 
 # Palmyra
-# uninhabited since World War II; was probably like Pacific/Kiritmati
+# uninhabited since World War II; was probably like Pacific/Kiritimati
 
 # Papua New Guinea
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
diff --git a/time/difftime.c b/time/difftime.c
index 49c5bfbc5c..170471768f 100644
--- a/time/difftime.c
+++ b/time/difftime.c
@@ -1,28 +1,30 @@
-/* Copyright (C) 1991, 1994 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+/* Copyright (C) 1991, 1994, 1996 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
-#include <ansidecl.h>
 #include <time.h>
+#include <values.h>
 
 
 /* Return the difference between TIME1 and TIME0.  */
 double
-DEFUN(difftime, (time1, time0), time_t time1 AND time_t time0)
+difftime (time1, time0)
+     time_t time1;
+     time_t time0;
 {
   /* Algorithm courtesy Paul Eggert (eggert@twinsun.com).  */
 
@@ -30,8 +32,8 @@ DEFUN(difftime, (time1, time0), time_t time1 AND time_t time0)
 
   if (sizeof (time_t) < sizeof (double))
     return (double) time1 - (double) time0;
-  if (sizeof (time_t) < sizeof (LONG_DOUBLE))
-    return (LONG_DOUBLE) time1 - (LONG_DOUBLE) time0;
+  if (sizeof (time_t) < sizeof (long double))
+    return (long double) time1 - (long double) time0;
 
   if (time1 < time0)
     return - difftime (time0, time1);
@@ -43,9 +45,7 @@ DEFUN(difftime, (time1, time0), time_t time1 AND time_t time0)
     return delta;
 
   /* Repair delta overflow.  */
-  hibit = 1;
-  while ((hibit <<= 1) > 0)
-    continue;
+  hibit = (~ (time_t) 0) << (_TYPEBITS (time_t) - 1);
 
   /* The following expression rounds twice, which means the result may not
      be the closest to the true answer.  For example, suppose time_t is
@@ -62,5 +62,5 @@ DEFUN(difftime, (time1, time0), time_t time1 AND time_t time0)
      round twice when converting large unsigned types to small floating
      types, so if time_t is unsigned the "return delta" above has the same
      double-rounding problem.  */
-  return delta - 2 * (LONG_DOUBLE) hibit;
+  return delta - 2 * (long double) hibit;
 }
diff --git a/time/europe b/time/europe
index 6eb92b769d..78ad05d7f5 100644
--- a/time/europe
+++ b/time/europe
@@ -1,4 +1,4 @@
-# @(#)europe	7.41
+# @(#)europe	7.42
 
 # This data is by no means authoritative; if you think you know better,
 # go ahead and edit the file (and please send any changes to
@@ -78,7 +78,7 @@
 # of the text said:
 #
 # `An old stone obelisk marking a forgotten terrestrial meridian stands
-# beside the river at Kew. In the 18th century, before time and longditude
+# beside the river at Kew. In the 18th century, before time and longitude
 # was standardised by the Royal Observatory in Greenwich, scholars observed
 # this stone and the movement of stars from Kew Observatory nearby. They
 # made their calculations and set the time for the Horse Guards and Parliament,
@@ -86,7 +86,7 @@
 # along the towpath within a few yards of it.'
 #
 # I have a one inch to one mile map of London and my estimate of the stone's
-# position is 51 deg. 28' 30" N, 0 deg. 18' 45" W. The longditude should
+# position is 51 deg. 28' 30" N, 0 deg. 18' 45" W. The longitude should
 # be within about +-2". The Ordnance Survey grid reference is TQ172761.
 #
 # [This yields GMTOFF = -0:01:15 for London LMT in the 18th century.]
@@ -167,7 +167,7 @@
 # It ends at 02:00 GMT on the morning of the day after the fourth Saturday
 # in October. (All the redundant `morning of the day ...' is in the Act.)
 # This is only of passing interest now as it will always be overridden by
-# an Order in Council (a Statutary Instrument, the SI thing mentioned above)
+# an Order in Council (a Statutory Instrument, the SI thing mentioned above)
 # to specify the EC specified dates.
 
 # From Peter Ilieve <peter@memex.co.uk> (1993-10-18):
@@ -327,7 +327,7 @@
 # so that part of the 1922 Act will still apply.
 #
 # - The Defence (Summer Time) Regulations, 1939, SR&O 1939 No. 1379
-#   [SR&O == Statutary Regulation and Order]
+#   [SR&O == Statutory Regulation and Order]
 #
 # These were made under the Emergency Powers (Defence) Act, 1939.
 # It changes the end date to be the day after the third Saturday in November.
@@ -403,7 +403,7 @@
 # harmonise with the EC since 1981. The major change is that the time changes
 # to 01:00 GMT.)
 #
-# - The Summer Time Order, 1992, SI 1992/1729 [SI == Statutary Instrument]
+# - The Summer Time Order, 1992, SI 1992/1729 [SI == Statutory Instrument]
 #
 # This specifies dates of:
 #       Start       End
@@ -1298,7 +1298,7 @@ Zone	Europe/Athens	1:34:52 -	LMT	1895 Sep 14
 			1:00	Greece	CE%sT	1944 Apr  4
 			2:00	Greece	EE%sT	1981
 			# Shanks says they switched to C-Eur in 1981;
-			# go with EU intead, since Greece joined it on Jan 1.
+			# go with EU instead, since Greece joined it on Jan 1.
 			2:00	EU	EE%sT
 
 # Hungary
@@ -1819,9 +1819,15 @@ Zone Europe/Bucharest	1:44:24 -	LMT	1891 Oct
 			2:00	E-Eur	EE%sT
 
 # Russia
-# From Shanks (1991):
-# In 1929 the Soviet Union instituted a 5 day week; in 1932 it instituted
-# a 6 day week; on 1940-06-27 it returned to the Gregorian week.
+
+# From Chris Carrier <72157.3334@CompuServe.COM> (1996-12-02):
+# On 1929-10-01 the Soviet Union instituted an ``Eternal Calendar''
+# with 30-day months plus 5 holidays, with a 5-day week.
+# On 1931-12-01 it changed to a 6-day week; in 1934 it reverted to the
+# Gregorian calendar while retaining the 6-day week; on 1940-06-27 it
+# reverted to the 7-day week.  With the 6-day week the usual days
+# off were the 6th, 12th, 18th, 24th and 30th of the month.
+# (Source: Evitiar Zerubavel, _The Seven Day Circle_)
 #
 # From Paul Eggert <eggert@twinsun.com> (1996-11-22):
 # Except for Moscow after 1919-07-01, I invented the time zone abbreviations,
@@ -1882,7 +1888,7 @@ Zone Asia/Omsk		 4:53:36 -	LMT	1924 May  2
 # as far as I remember it was done exactly during winter->summer switching
 # so we (Novosibirsk) simply did not switch.
 Zone Asia/Novosibirsk	 5:31:40 -	LMT	1924 May  2
-			 6:00	-	NOVT	1957 Mar # Novosibirsk TIme
+			 6:00	-	NOVT	1957 Mar # Novosibirsk Time
 			 7:00	Russia	NOV%sT	1991 Mar 31 2:00s
 			 6:00	1:00	NOVST	1991 Sep 29 2:00s
 			 6:00	-	NOVT	1992 Jan 19 2:00s
@@ -2134,7 +2140,7 @@ Link	Europe/Istanbul	Asia/Istanbul	# Istanbul is in both continents.
 # Ukraine
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Ukraine	1917	only	-	Jul	 1	23:00	1:00	UST	# Ukrainian Summer Time
-Rule	Ukraine	1917	only	-	Dec	28	 0:00	0	KMT	# Kiev Mean TIme
+Rule	Ukraine	1917	only	-	Dec	28	 0:00	0	KMT	# Kiev Mean Time
 Rule	Ukraine	1918	only	-	May	31	22:00	2:00	UDST	# Ukrainian Double Summer Time
 Rule	Ukraine	1918	only	-	Sep	17	 0:00	1:00	UST
 Rule	Ukraine	1919	only	-	May	31	23:00	2:00	UDST
diff --git a/time/northamerica b/time/northamerica
index af81c5edb9..9bd959e45c 100644
--- a/time/northamerica
+++ b/time/northamerica
@@ -1,4 +1,4 @@
-# @(#)northamerica	7.29
+# @(#)northamerica	7.30
 # also includes Central America and the Caribbean
 
 # This data is by no means authoritative; if you think you know better,
@@ -920,9 +920,9 @@ Zone America/Dawson	-9:17:40 -	LMT	1900 Aug 20
 # MEXICO BAJA CAL N   7 H  BEHIND UTC    BAJA CALIFORNIA SUR AND
 # MEXICO BAJA CAL N                      N. PACIFIC COAST (STATES
 # MEXICO BAJA CAL N                      OF SINALOA AND SONORA)
-# MEXICO BAJA CAL N   8 H  BEHIND UTC    ABOVE 28TH PARALLAL APR 3
+# MEXICO BAJA CAL N   8 H  BEHIND UTC    ABOVE 28TH PARALLEL APR 3
 # MEXICO BAJA CAL N                      - OCT 29
-# MEXICO BAJA CAL N   7 H  BEHIND UTC    ABOVE 28TH PARALLAL APR 3
+# MEXICO BAJA CAL N   7 H  BEHIND UTC    ABOVE 28TH PARALLEL APR 3
 # MEXICO BAJA CAL N                      - 0CT 29
 # MEXICO              6 H  BEHIND UTC    STATES OF DURANGO,
 # MEXICO                                 COAHUILA, NUEVO LEON,
diff --git a/time/southamerica b/time/southamerica
index 1fdde5ebe5..b2b5138171 100644
--- a/time/southamerica
+++ b/time/southamerica
@@ -1,4 +1,4 @@
-# @(#)southamerica	7.15
+# @(#)southamerica	7.16
 
 # This data is by no means authoritative; if you think you know better,
 # go ahead and edit the file (and please send any changes to
@@ -61,7 +61,7 @@
 # ARGENTINA           3 H BEHIND   UTC
 
 # From Hernan G. Otero <hernan@isoft.com.ar> (1995-06-26):
-# I am sending modifications to the Argentinian time zone table...
+# I am sending modifications to the Argentine time zone table...
 # AR was chosen because they are the ISO letters that represent Argentina.
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
@@ -99,7 +99,7 @@ Rule	Arg	1988	only	-	Dec	 1	0:00	1:00	S
 # These corrections were contributed by InterSoft Argentina S.A.,
 # obtaining the data from the:
 # Talleres de Hidrografia Naval Argentina
-# (Argentinian Naval Hydrography Institute)
+# (Argentine Naval Hydrography Institute)
 #
 # Shanks gives 1989 Mar 16 and stops after 1990 Mar 4; go with Otero.
 Rule	Arg	1989	1993	-	Mar	Sun>=1	0:00	0	-
diff --git a/time/zic.c b/time/zic.c
index f75834c6c3..5a0063ab4b 100644
--- a/time/zic.c
+++ b/time/zic.c
@@ -1,6 +1,6 @@
 #ifndef lint
 #ifndef NOID
-static char	elsieid[] = "@(#)zic.c	7.79";
+static char	elsieid[] = "@(#)zic.c	7.80";
 #endif /* !defined NOID */
 #endif /* !defined lint */
 
@@ -1697,7 +1697,7 @@ const int			zonecount;
 					(void) strcpy(startbuf, zp->z_format);
 			eat(zp->z_filename, zp->z_linenum);
 			if (*startbuf == '\0')
-error(_("can't determine time zone abbrevation to use just after until time"));
+error(_("can't determine time zone abbreviation to use just after until time"));
 			else	addtt(starttime,
 					addtype(startoff, startbuf,
 						startoff != zp->z_gmtoff,