diff options
73 files changed, 1835 insertions, 2889 deletions
@@ -1,3 +1,164 @@ +Mon Sep 9 20:31:27 1996 Ulrich Drepper <drepper@cygnus.com> + + * version.c (banner): Report to bug-glibc@prep not @gnu. + Reported by Andreas Jaeger. + + * libio/stdio.h [!__USE_REENTRANT]: Don't define getc as + _IO_getc_unlocked. + [__USE_REENTRANT]: Don't define + +Mon Sep 9 15:59:32 1996 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/i386/strrchr.c: Fix bug where NUL byte is not recognized + when it is the third byte in the string. Reported by + NIIBE Yutaka. + * string/tester.c: Add tests for above bug to strlen, strchr, and + strrchr tests. + +Fri Sep 6 21:23:33 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * sysdeps/m68k/fpu/e_acos.c: Deansideclized. Include + "math_private.h" to get prototype. + * sysdeps/m68k/fpu/e_fmod.c: Likewise. + * sysdeps/m68k/fpu/k_cos.c: Likewise. + * sysdeps/m68k/fpu/k_sin.c: Likewise. + * sysdeps/m68k/fpu/k_tan.c: Likewise. + + * sysdeps/m68k/fpu/k_sin.c: Remove uneeded indirection of + __m81_u. + * sysdeps/m68k/fpu/k_tan.c: Likewise. + +Sun Sep 1 18:01:35 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * sysdeps/m68k/fpu/__math.h: Check for __NO_M81_MATH_INLINES + instead of __NO_MATH_INLINES. + (__M81_MATH_INLINES): Renamed from __MATH_INLINES. + * sysdeps/m68k/fpu/e_acos.c: Define __NO_M81_MATH_INLINES. + * sysdeps/m68k/fpu/e_fmod.c: Likewise. + * sysdeps/m68k/fpu/k_cos.c: Likewise. + * sysdeps/m68k/fpu/k_sin.c: Likewise. + * sysdeps/m68k/fpu/k_tan.c: Likewise. + * sysdeps/m68k/fpu/s_atan.c: Likewise. + * sysdeps/m68k/fpu/s_frexp.c: Likewise. + * sysdeps/m68k/fpu/s_ilogb.c: Likewise. + * sysdeps/m68k/fpu/s_isinf.c: Likewise. + * sysdeps/m68k/fpu/s_ldexp.c: Likewise. + * sysdeps/m68k/fpu/s_modf.c: Likewise. + * sysdeps/m68k/fpu/k_cos.c: Use inline version of __cos. + * sysdeps/m68k/fpu/k_sin.c: Likewise. + * sysdeps/m68k/fpu/k_tan.c: Likewise. + +Mon Sep 9 12:55:14 1996 Ulrich Drepper <drepper@cygnus.com> + + * nss/nss_files/files-parse.c (INT_FIELD_MAYBE_NULL): Check for + available character before converting number and return with + error if none is available. + +Fri Sep 6 22:09:08 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * sysdeps/unix/sysv/linux/init-first.h: New file, generic + implementation for architectures where parameters are passed on + stack. + * sysdeps/unix/sysv/linux/m68k/init-first.h: Removed. + * sysdeps/unix/sysv/linux/i386/init-first.h: Removed. + +Fri Sep 6 22:05:32 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * configure.in: Remove unneeded sysnames frobbing. + +Mon Sep 9 05:29:09 1996 Ulrich Drepper <drepper@cygnus.com> + + * time/zic.c: Update from ADO 96l. + * time/africa: Update from ADO 96k. + * time/antarctica: Likewise. + * time/asia: Likewise. + * time/australia: Likewise. + * time/europe: Likewise. + * time/northamerica: Likewise. + * time/southamerica: Likewise. + +Mon Sep 9 05:03:47 1996 NIIBE Yutaka <gniibe@mri.co.jp> + + * sysdeps/unix/sysv/linux/i386/init-first.h: Work around buggy + gcc <= 2.7.2.1 which optimizes away address operations on weak + objects. + + * nss/nss_files/files-parse.c (INT_FIELD_MAYBE_NULL): New macro. + Like INT_FIELD but also accept non-existing field. + * shadow/sgetspent_r.c (LINE_PARSER): Use INT_FIELD_MAYBE_NULL + for last four fields. + * shadow/putspent.c (putspent): Print `:' after numeric value. + +Mon Sep 9 02:42:48 1996 Richard Henderson <rth@tamu.edu> + + * libio/stdio.h (BUFSIZ): Define using _IO_BUFSIZ. + +Sun Sep 8 16:43:56 1996 Ulrich Drepper <drepper@cygnus.com> + + * Make-dist: Filter out $(add-ons) from $(subdirs). + Don't distribute TAGS files. + ($(tardir).tar): Remove dist.tar when all is done. + * manual/Makefile (distribute): Add libc.info*. + * libio/Makefile (distribute): Add Banner. + * inet/Makefile (headers): Add netinet/tcp.h. + + * resolv/Makefile (libresolv-routines): Add getnetnamadr. + + * crypt-README: Removed. + * gnu-stabs.h: Removed. + + * sysdeps/alpha/copysign.S: Renamed to... + * sysdeps/alpha/s_copysign.S: ...this. + * sysdeps/alpha/fabs.S: Renamed to... + * sysdeps/alpha/s_fabs.S: ...this. + + * sysdeps/m68k/isinfl.c: Renamed to... + * sysdeps/m68k/s_isinfl.c: ...this. + * sysdeps/m68k/isnanl.c: Renamed to... + * sysdeps/m68k/s_isnanl.c: ...this. + + * sysdeps/sparc/sqrt.c: Renamed to... + * sysdeps/sparc/e_sqrt.c: ...this. Function name now is + __ieee754_sqrt. + + * sysdeps/generic/get_str.c: Removed. + + * sysdeps/ieee754/cbrt.c: Removed. + * sysdeps/ieee754/drem.c: Removed. + * sysdeps/ieee754/logb.c: Removed. + * sysdeps/ieee754/sqrt.c: Removed. + + * sysdeps/stub/cbrt.c: Removed. + * sysdeps/stub/cos.c: Removed. + * sysdeps/stub/drem.c: Removed. + * sysdeps/stub/isinf.c: Removed. + * sysdeps/stub/isinfl.c: Removed. + * sysdeps/stub/isnanl.c: Removed. + * sysdeps/stub/logb.c: Removed. + * sysdeps/stub/sin.c: Removed. + * sysdeps/stub/sqrt.c: Removed. + + * sysdeps/tahoe/log10.c: Removed. + + * sysdeps/vax/index.s: Removed. + * sysdeps/vax/rindex.s: Removed. + * sysdeps/vax/bcmp.s: Removed. + * sysdeps/vax/log10.c: Removed. + * sysdeps/vax/infnan.c: Removed. + * sysdeps/vax/Dist: Add fl.h. + + * sysdeps/unix/sysv/linux/alpha/Dist: Add llseek.S. + + * inet/rcmd.c (rcmd): Make messages more uniform. + +Sun Sep 8 14:15:42 1996 Ulrich Drepper <drepper@cygnus.com> + + * po/de.po: Update. + * po/es.po: Update. + * po/ko.po: Update. + * po/pl.po: New file. + * po/nl.po: New file. + Sat Sep 7 18:41:17 1996 Richard Henderson <rth@tamu.edu> * Makeconfig (+link): Filter out start, pre & postinit from the @@ -11,7 +172,7 @@ Sun Sep 8 02:36:02 1996 Ulrich Drepper <drepper@cygnus.com> * locale/SYS_libc.c (_libc_intl_domainname): Change value to "libc". This is consistent with all other GNU packages. We shouldn't - take care for a possible clash. Somebody will name the domain + take care for a possible clash. Nobody will name the domain of a package libc if it is not the libc itself. * MakeTAGS ($P/SYS_libc.pot): Rename to $P/libc.pot. * po/Makefile (domainname): Change to libc. @@ -40,6 +40,9 @@ else sysdep_dirs := $(addprefix $(..),$(sysdep_dirs)) endif +# Don't distribute add-on subdirs. +subdirs := $(filter-out $(add-ons),$(subdirs)) + # Make sure both stdio and libio get in, whichever is in use. subdirs += stdio libio @@ -129,8 +132,8 @@ endif $(..)glibc-$(version): ln -s . $@ -+tsrcs := $(+tsrcs) \ - TAGS +#+tsrcs := $(+tsrcs) \ +# TAGS .PHONY: TAGS TAGS: $(..)MakeTAGS $(MAKE) -f $< $@ -o subdir_TAGS @@ -195,7 +198,7 @@ $(tardir).tar: dist.tar subdir_dist @echo Files listed here have names exceeding 14 chars. tar xfv $< -C /tmp | sed -n '/[^/]\{15,\}/p' tar covf $@ -C /tmp $(tardir) - -rm -fr /tmp/$(tardir) & + -rm -fr /tmp/$(tardir) dist.tar & %.Z: % compress -c $< > $@ @@ -1,4 +1,4 @@ -This directory contains the version 1.93 test release of the GNU C Library. +This directory contains the version 1.94 test release of the GNU C Library. Many bugs have been fixed since the last release. Some bugs surely remain. @@ -38,7 +38,7 @@ provides the Unix `crypt' function, plus some other entry points. Because of the United States export restriction on DES implementations, we are distributing this code separately from the rest of the C library. There is an extra distribution tar file just for crypt; it is -called `glibc-1.93-crypt.tar.gz'. You can just unpack the crypt +called `glibc-1.94-crypt.tar.gz'. You can just unpack the crypt distribution along with the rest of the C library and build; you can also build the library without getting crypt. Users outside the USA can get the crypt distribution via anonymous FTP from ftp.uni-c.dk @@ -886,10 +886,6 @@ if test "$elf" = yes; then fi -# Remove the leading slashes. -sysnames="`echo $sysnames | sed -e 's@^/@@' -e 's@ /@ @g'`" - - # Expand the list of system names into a full list of directories # from each element's parent name and Implies file (if present). set $sysnames @@ -1174,13 +1170,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext <<EOF -#line 1178 "configure" +#line 1174 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1184: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1180: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1189,13 +1185,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 1193 "configure" +#line 1189 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1199: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1195: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1337,7 +1333,7 @@ if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1341 "configure" +#line 1337 "configure" #include "confdefs.h" #define __need_size_t #define __need_wchar_t @@ -1353,7 +1349,7 @@ size_t size; wchar_t wchar; if (&size == NULL || &wchar == NULL) abort (); ; return 0; } EOF -if { (eval echo configure:1357: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libc_cv_friendly_stddef=yes else @@ -1460,7 +1456,7 @@ if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1464 "configure" +#line 1460 "configure" #include "confdefs.h" int main() { return 0; } @@ -1470,7 +1466,7 @@ asm (".section .init"); asm (".text"); ; return 0; } EOF -if { (eval echo configure:1474: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1470: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libc_cv_have_initfini=yes else @@ -1498,7 +1494,7 @@ if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1502 "configure" +#line 1498 "configure" #include "confdefs.h" asm ("_glibc_foobar:"); int main() { return 0; } @@ -1506,7 +1502,7 @@ int t() { glibc_foobar (); ; return 0; } EOF -if { (eval echo configure:1510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then +if { (eval echo configure:1506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then rm -rf conftest* libc_cv_asm_underscores=yes else @@ -1600,7 +1596,7 @@ __throw () {} EOF if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles -Wl,--no-whole-archive - -o conftest conftest.c'; { (eval echo configure:1604: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c'; { (eval echo configure:1600: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_ld_no_whole_archive=yes else libc_cv_ld_no_whole_archive=no @@ -1621,7 +1617,7 @@ __throw () {} EOF if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles -fno-exceptions - -o conftest conftest.c'; { (eval echo configure:1625: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c'; { (eval echo configure:1621: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_gcc_no_exceptions=yes else libc_cv_gcc_no_exceptions=no diff --git a/configure.in b/configure.in index 76055a2..cd9de13 100644 --- a/configure.in +++ b/configure.in @@ -256,10 +256,6 @@ if test "$elf" = yes; then fi -# Remove the leading slashes. -sysnames="`echo $sysnames | sed -e 's@^/@@' -e 's@ /@ @g'`" - - # Expand the list of system names into a full list of directories # from each element's parent name and Implies file (if present). set $sysnames diff --git a/crypt-README b/crypt-README deleted file mode 100644 index c80ddf5..0000000 --- a/crypt-README +++ /dev/null @@ -1,14 +0,0 @@ -The GNU C library now includes Michael Glad's Ultra Fast Crypt, which -provides the Unix `crypt' function, plus some other entry points. Because -of the United States export restriction on DES implementations, we are -distributing this code separately from the rest of the C library. There is -an extra distribution tar file just for crypt; it is called -`glibc-1.07-crypt.tar.gz'. You can just unpack the crypt distribution -along with the rest of the C library and build; you can also build the -library without getting crypt. Users outside the USA can get the crypt -distribution via anonymous FTP from ftp.uni-c.dk [129.142.6.74], or another -archive site outside the USA. Archive maintainers are encouraged to copy -this distribution to their archives outside the USA. Please get it from -ftp.uni-c.dk; transferring this distribution from prep.ai.mit.edu (or any -other site in the USA) to a site outside the USA is in violation of US -export laws. diff --git a/gnu-stabs.h b/gnu-stabs.h deleted file mode 100644 index 3cdc91d..0000000 --- a/gnu-stabs.h +++ /dev/null @@ -1,75 +0,0 @@ -#error This file is obsolete. - -/* Copyright (C) 1991, 1992, 1994 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 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. */ - -#ifndef __GNU_STABS_H - -#define __GNU_STABS_H 1 - -#ifdef HAVE_GNU_LD - -/* Alias a function: - function_alias(creat, _creat, int, (file, mode), - DEFUN(creat, (file, mode), - CONST char *file AND int mode)) - Yes, this is very repetitive. Nothing you can do about it, so shut up. */ -#define function_alias(name, _name, type, args, defun) \ - symbol_alias (_name, name); - -#define function_alias_void(name, _name, args, defun) \ - symbol_alias (_name, name); - -#ifdef NO_UNDERSCORES -#define __SYMBOL_PREFIX -#else -#define __SYMBOL_PREFIX "_" -#endif - -/* Make references to ALIAS refer to SYMBOL. */ -#define symbol_alias(symbol, alias) \ - asm(".stabs \"" __SYMBOL_PREFIX #alias "\",11,0,0,0\n"\ - ".stabs \"" __SYMBOL_PREFIX #symbol "\",1,0,0,0") - -/* Issue a warning message from the linker whenever SYMBOL is referenced. */ -#define warn_references(symbol, msg) \ - asm(".stabs \"" msg "\",30,0,0,0\n" \ - ".stabs \"" __SYMBOL_PREFIX #symbol "\",1,0,0,0") - -#define stub_warning(name) \ - warn_references(name, \ - "warning: " #name " is not implemented and will always fail") - -#define text_set_element(set, symbol) \ - asm(".stabs \"" __SYMBOL_PREFIX #set "\",23,0,0," __SYMBOL_PREFIX #symbol) -#define data_set_element(set, symbol) \ - asm(".stabs \"" __SYMBOL_PREFIX #set "\",25,0,0," __SYMBOL_PREFIX #symbol) -#define bss_set_element(set, symbol) \ - asm(".stabs \"" __SYMBOL_PREFIX #set "\",27,0,0," __SYMBOL_PREFIX #symbol) - -#else /* No GNU stabs. */ - -#define function_alias(name, _name, type, args, defun) \ - type defun { return _name args; } - -#define function_alias_void(name, _name, args, defun) \ - void defun { _name args; } - -#endif /* GNU stabs. */ - -#endif /* gnu-stabs.h */ diff --git a/inet/Makefile b/inet/Makefile index e97da7f..fbac0dc 100644 --- a/inet/Makefile +++ b/inet/Makefile @@ -22,7 +22,7 @@ subdir := inet headers := netinet/ether.h netinet/in.h netinet/if_ether.h \ - $(wildcard arpa/*.h protocols/*.h) + netinet/tcp.h $(wildcard arpa/*.h protocols/*.h) routines := ntohl ntohs htonl htons \ inet_lnaof inet_mkadr \ diff --git a/inet/rcmd.c b/inet/rcmd.c index 7a29db2..00fa965 100644 --- a/inet/rcmd.c +++ b/inet/rcmd.c @@ -173,7 +173,7 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p) from.sin_port >= IPPORT_RESERVED || from.sin_port < IPPORT_RESERVED / 2) { (void)fprintf(stderr, - _("socket: protocol failure in circuit setup.\n")); + _("socket: protocol failure in circuit setup\n")); goto bad2; } } diff --git a/libio/Makefile b/libio/Makefile index 355a79a..1d0ec93 100644 --- a/libio/Makefile +++ b/libio/Makefile @@ -48,6 +48,6 @@ endif aux := \ cleanup fileops genops stdfiles stdio strops -distribute := iolibio.h libioP.h strfile.h +distribute := iolibio.h libioP.h strfile.h Banner include ../Rules diff --git a/libio/stdio.h b/libio/stdio.h index 0d6c5e6..ce3da7d 100644 --- a/libio/stdio.h +++ b/libio/stdio.h @@ -40,7 +40,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define EOF (-1) #endif #ifndef BUFSIZ -#define BUFSIZ 1024 +#define BUFSIZ _IO_BUFSIZ #endif #define _IOFBF 0 /* Fully buffered. */ @@ -234,21 +234,16 @@ extern int putc_unlocked __P ((int, FILE *)); extern int putchar_locked __P ((int)); extern int putchar_unlocked __P ((int)); -# define getc_unlocked(fp) _IO_getc_unlocked (fp) -# define getc_locked(fp) fgetc (fp) -# define getchar_unlocked() getc_unlocked (stdin) -# define getchar_locked() getc_locked (stdin) -# define getc(fp) getc_locked (fp) - -# define putc_unlocked(c, fp) putc_unlocked (c, fp) -# define putc_locked(c, fp) putc_locked (c, fp) -# define putchar_unlocked(c) putc_unlocked (c, stdout) -# define putchar_locked(c) putc_locked (c, stdout) -# define putc(c, fp) putc_locked (c, fp) - -#else -# define getc(fp) _IO_getc_unlocked (fp) -# define putc(c, fp) _IO_putc_unlocked (c, fp) +# ifndef _LIBC +# define getc_unlocked(fp) _IO_getc_unlocked (fp) +# define getc_locked(fp) fgetc (fp) +# define getchar_unlocked() getc_unlocked (stdin) +# define getchar_locked() getc_locked (stdin) +# define getc(fp) getc_locked (fp) +# define putchar_unlocked(c) putc_unlocked (c, stdout) +# define putchar_locked(c) putc_locked (c, stdout) +# define putc(c, fp) putc_locked (c, fp) +# endif #endif /* __USE_REENTRANT */ diff --git a/manual/Makefile b/manual/Makefile index c0a5782..5c21781 100644 --- a/manual/Makefile +++ b/manual/Makefile @@ -77,7 +77,7 @@ doc-only-dist = Makefile COPYING.LIB mkinstalldirs distribute = $(minimal-dist) \ $(patsubst examples/%.c,%.c.texi,$(filter examples/%.c, \ $(minimal-dist))) \ - libc.?? libc.??s texinfo.tex summary.texi \ + libc.info* libc.?? libc.??s texinfo.tex summary.texi \ stamp-summary chapters chapters-incl export distribute := $(distribute) diff --git a/nss/nss_files/files-parse.c b/nss/nss_files/files-parse.c index c9fb1f8..ece253d 100644 --- a/nss/nss_files/files-parse.c +++ b/nss/nss_files/files-parse.c @@ -121,6 +121,24 @@ parse_line (char *line, struct STRUCTURE *result, \ line = endp; \ } +#define INT_FIELD_MAYBE_NULL(variable, terminator_p, swallow, base, convert, default) \ + { \ + char *endp; \ + if (*line == '\0') \ + /* We expect some more input, so don't allow the string to end here. */ \ + return 0; \ + variable = convert (strtol (line, &endp, base)); \ + if (endp == line) \ + variable = default; \ + if (terminator_p (*endp)) \ + do \ + ++endp; \ + while (swallow && terminator_p (*endp)); \ + else if (*endp != '\0') \ + return 0; \ + line = endp; \ + } + #define ISCOLON(c) ((c) == ':') diff --git a/resolv/Makefile b/resolv/Makefile index 51257a5..fffaca3 100644 --- a/resolv/Makefile +++ b/resolv/Makefile @@ -27,9 +27,9 @@ distribute := ../conf/portability.h mapv4v6addr.h mapv4v6hostent.h routines := herror inet_addr inet_ntop inet_pton nsap_addr res_init extra-libs := libresolv -libresolv-routines := gethnamaddr res_comp res_debug res_data res_mkquery \ - res_query res_send inet_net_ntop inet_net_pton \ - inet_neta base64 +libresolv-routines := gethnamaddr getnetnamadr res_comp res_debug \ + res_data res_mkquery res_query res_send \ + inet_net_ntop inet_net_pton inet_neta base64 include ../Rules diff --git a/shadow/putspent.c b/shadow/putspent.c index 59dbfda..b638057 100644 --- a/shadow/putspent.c +++ b/shadow/putspent.c @@ -28,48 +28,48 @@ putspent (const struct spwd *p, FILE *stream) { int errors = 0; - if (fprintf (stream, "%s:%s", p->sp_namp, p->sp_pwdp) < 0) + if (fprintf (stream, "%s:%s:", p->sp_namp, p->sp_pwdp) < 0) ++errors; if ((p->sp_lstchg != (time_t) -1 - && fprintf (stream, "%ld", p->sp_lstchg) < 0) + && fprintf (stream, "%ld:", p->sp_lstchg) < 0) || (p->sp_lstchg == (time_t) -1 && putc (':', stream) == EOF)) ++errors; if ((p->sp_min != (time_t) -1 - && fprintf (stream, "%ld", p->sp_min) < 0) + && fprintf (stream, "%ld:", p->sp_min) < 0) || (p->sp_min == (time_t) -1 && putc (':', stream) == EOF)) ++errors; if ((p->sp_max != (time_t) -1 - && fprintf (stream, "%ld", p->sp_max) < 0) + && fprintf (stream, "%ld:", p->sp_max) < 0) || (p->sp_max == (time_t) -1 && putc (':', stream) == EOF)) ++errors; if ((p->sp_warn != (time_t) -1 - && fprintf (stream, "%ld", p->sp_warn) < 0) + && fprintf (stream, "%ld:", p->sp_warn) < 0) || (p->sp_warn == (time_t) -1 && putc (':', stream) == EOF)) ++errors; if ((p->sp_inact != (time_t) -1 - && fprintf (stream, "%ld", p->sp_inact) < 0) + && fprintf (stream, "%ld:", p->sp_inact) < 0) || (p->sp_inact == (time_t) -1 && putc (':', stream) == EOF)) ++errors; if ((p->sp_expire != (time_t) -1 - && fprintf (stream, "%ld", p->sp_expire) < 0) + && fprintf (stream, "%ld:", p->sp_expire) < 0) || (p->sp_expire == (time_t) -1 && putc (':', stream) == EOF)) ++errors; - if ((p->sp_flag != -1l - && fprintf (stream, "%ld", p->sp_flag) < 0) - || (p->sp_flag == -1l + if ((p->sp_flag != ~0ul + && fprintf (stream, "%ld:", p->sp_flag) < 0) + || (p->sp_flag == ~0ul && putc (':', stream) == EOF)) ++errors; diff --git a/shadow/sgetspent_r.c b/shadow/sgetspent_r.c index 134a45e..03c96b5 100644 --- a/shadow/sgetspent_r.c +++ b/shadow/sgetspent_r.c @@ -44,19 +44,18 @@ LINE_PARSER result->sp_warn = (time_t) -1; result->sp_inact = (time_t) -1; result->sp_expire = (time_t) -1; - result->sp_flag = (time_t) -1; + result->sp_flag = ~0ul; } else { - INT_FIELD (result->sp_warn, ISCOLON, 0, 10, (time_t)); - INT_FIELD (result->sp_inact, ISCOLON, 0, 10, (time_t)); - INT_FIELD (result->sp_expire, ISCOLON, 0, 10, (time_t)); - while (isspace (*line)) - ++line; - if (*line == '\0') - result->sp_flag = -1; - else - INT_FIELD (result->sp_flag, ISCOLON, 0, 10, ); + INT_FIELD_MAYBE_NULL (result->sp_warn, ISCOLON, 0, 10, (time_t), + (time_t) -1); + INT_FIELD_MAYBE_NULL (result->sp_inact, ISCOLON, 0, 10, (time_t), + (time_t) -1); + INT_FIELD_MAYBE_NULL (result->sp_expire, ISCOLON, 0, 10, (time_t), + (time_t) -1); + INT_FIELD_MAYBE_NULL (result->sp_flag, ISCOLON, 0, 10, + (unsigned long int), ~0ul); } ) diff --git a/string/tester.c b/string/tester.c index e57b279..d376db2 100644 --- a/string/tester.c +++ b/string/tester.c @@ -208,7 +208,19 @@ DEFUN(main, (argc, argv), int argc AND char **argv) it = "strlen"; check(strlen("") == 0, 1); /* Empty. */ check(strlen("a") == 1, 2); /* Single char. */ - check(strlen("abcd") == 4, 3); /* Multiple chars. */ + check(strlen("abcd") == 4, 3); /* Multiple chars. */ + { + char buf[4096]; + int i; + char *p; + for (i=0; i < 0x100; i++) + { + p = (char *)((int)(buf + 0xff) & ~0xff) + i; + strcpy (p, "OK"); + strcpy (p+3, "BAD/WRONG"); + check(strlen(p) == 2, 4+i); + } + } /* strchr. */ it = "strchr"; @@ -223,6 +235,18 @@ DEFUN(main, (argc, argv), int argc AND char **argv) (void) strcpy(one, ""); check(strchr(one, 'b') == NULL, 7); /* Empty string. */ check(strchr(one, '\0') == one, 8); /* NUL in empty string. */ + { + char buf[4096]; + int i; + char *p; + for (i=0; i < 0x100; i++) + { + p = (char *)((int)(buf + 0xff) & ~0xff) + i; + strcpy (p, "OK"); + strcpy (p+3, "BAD/WRONG"); + check(strchr(p, '/') == NULL, 9+i); + } + } #if 0 /* index - just like strchr. */ @@ -253,6 +277,18 @@ DEFUN(main, (argc, argv), int argc AND char **argv) (void) strcpy(one, ""); check(strrchr(one, 'b') == NULL, 7); /* Empty string. */ check(strrchr(one, '\0') == one, 8); /* NUL in empty string. */ + { + char buf[4096]; + int i; + char *p; + for (i=0; i < 0x100; i++) + { + p = (char *)((int)(buf + 0xff) & ~0xff) + i; + strcpy (p, "OK"); + strcpy (p+3, "BAD/WRONG"); + check(strrchr(p, '/') == NULL, 9+i); + } + } #if 0 /* rindex - just like strrchr. */ @@ -515,8 +551,8 @@ DEFUN(main, (argc, argv), int argc AND char **argv) char buf[128 + sizeof(long)]; long align, len, i, pos; - for (align = 0; align < sizeof(long); ++align) { - for (len = 0; len < sizeof(buf) - align; ++len) { + for (align = 0; align < (long) sizeof(long); ++align) { + for (len = 0; len < (long) (sizeof(buf) - align); ++len) { for (i = 0; i < len; ++i) { buf[align + i] = 'x'; /* don't depend on memset... */ } diff --git a/sysdeps/alpha/copysign.S b/sysdeps/alpha/s_copysign.S index 95eb608..95eb608 100644 --- a/sysdeps/alpha/copysign.S +++ b/sysdeps/alpha/s_copysign.S diff --git a/sysdeps/alpha/fabs.S b/sysdeps/alpha/s_fabs.S index dff8390..12c0abd 100644 --- a/sysdeps/alpha/fabs.S +++ b/sysdeps/alpha/s_fabs.S @@ -19,9 +19,10 @@ Cambridge, MA 02139, USA. */ #include <sysdep.h> -ENTRY(fabs) +ENTRY(__fabs) .prologue 0 cpys $f31,$f16,$f0 ret - END(fabs) + END(__fabs) +weak_alias (__fabs, fabs) diff --git a/sysdeps/generic/get_str.c b/sysdeps/generic/get_str.c deleted file mode 100644 index 182815e..0000000 --- a/sysdeps/generic/get_str.c +++ /dev/null @@ -1,213 +0,0 @@ -/* __mpn_get_str -- Convert a MSIZE long limb vector pointed to by MPTR - to a printable string in STR in base BASE. - -Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc. - - -This file is part of the GNU C Library. Its master source is NOT part of -the C library, however. This file is in fact copied from the GNU MP -Library and its source lives there. - -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. - -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. */ - -#include "gmp.h" -#include "gmp-impl.h" - -/* Convert the limb vector pointed to by MPTR and MSIZE long to a - char array, using base BASE for the result array. Store the - result in the character array STR. STR must point to an array with - space for the largest possible number represented by a MSIZE long - limb vector + 1 extra character. - - The result is NOT in Ascii, to convert it to printable format, add - '0' or 'A' depending on the base and range. - - Return the number of digits in the result string. - This may include some leading zeros. - - The limb vector pointed to by MPTR is clobbered. */ - -size_t -__mpn_get_str (str, base, mptr, msize) - unsigned char *str; - int base; - mp_ptr mptr; - mp_size_t msize; -{ - mp_limb big_base; -#if UDIV_NEEDS_NORMALIZATION || UDIV_TIME > 2 * UMUL_TIME - int normalization_steps; -#endif -#if UDIV_TIME > 2 * UMUL_TIME - mp_limb big_base_inverted; -#endif - unsigned int dig_per_u; - mp_size_t out_len; - register unsigned char *s; - - big_base = __mp_bases[base].big_base; - - s = str; - - /* Special case zero, as the code below doesn't handle it. */ - if (msize == 0) - { - s[0] = 0; - return 1; - } - - if ((base & (base - 1)) == 0) - { - /* The base is a power of 2. Make conversion from most - significant side. */ - mp_limb n1, n0; - register int bits_per_digit = big_base; - register int x; - register int bit_pos; - register int i; - - n1 = mptr[msize - 1]; - count_leading_zeros (x, n1); - - /* BIT_POS should be R when input ends in least sign. nibble, - R + bits_per_digit * n when input ends in n:th least significant - nibble. */ - - { - int bits; - - bits = BITS_PER_MP_LIMB * msize - x; - x = bits % bits_per_digit; - if (x != 0) - bits += bits_per_digit - x; - bit_pos = bits - (msize - 1) * BITS_PER_MP_LIMB; - } - - /* Fast loop for bit output. */ - i = msize - 1; - for (;;) - { - bit_pos -= bits_per_digit; - while (bit_pos >= 0) - { - *s++ = (n1 >> bit_pos) & ((1 << bits_per_digit) - 1); - bit_pos -= bits_per_digit; - } - i--; - if (i < 0) - break; - n0 = (n1 << -bit_pos) & ((1 << bits_per_digit) - 1); - n1 = mptr[i]; - bit_pos += BITS_PER_MP_LIMB; - *s++ = n0 | (n1 >> bit_pos); - } - - *s = 0; - - return s - str; - } - else - { - /* General case. The base is not a power of 2. Make conversion - from least significant end. */ - - /* If udiv_qrnnd only handles divisors with the most significant bit - set, prepare BIG_BASE for being a divisor by shifting it to the - left exactly enough to set the most significant bit. */ -#if UDIV_NEEDS_NORMALIZATION || UDIV_TIME > 2 * UMUL_TIME - count_leading_zeros (normalization_steps, big_base); - big_base <<= normalization_steps; -#if UDIV_TIME > 2 * UMUL_TIME - /* Get the fixed-point approximation to 1/(BIG_BASE << NORMALIZATION_STEPS). */ - big_base_inverted = __mp_bases[base].big_base_inverted; -#endif -#endif - - dig_per_u = __mp_bases[base].chars_per_limb; - out_len = ((size_t) msize * BITS_PER_MP_LIMB - * __mp_bases[base].chars_per_bit_exactly) + 1; - s += out_len; - - while (msize != 0) - { - int i; - mp_limb n0, n1; - -#if UDIV_NEEDS_NORMALIZATION || UDIV_TIME > 2 * UMUL_TIME - /* If we shifted BIG_BASE above, shift the dividend too, to get - the right quotient. We need to do this every loop, - since the intermediate quotients are OK, but the quotient from - one turn in the loop is going to be the dividend in the - next turn, and the dividend needs to be up-shifted. */ - if (normalization_steps != 0) - { - n0 = __mpn_lshift (mptr, mptr, msize, normalization_steps); - - /* If the shifting gave a carry out limb, store it and - increase the length. */ - if (n0 != 0) - { - mptr[msize] = n0; - msize++; - } - } -#endif - - /* Divide the number at TP with BIG_BASE to get a quotient and a - remainder. The remainder is our new digit in base BIG_BASE. */ - i = msize - 1; - n1 = mptr[i]; - - if (n1 >= big_base) - n1 = 0; - else - { - msize--; - i--; - } - - for (; i >= 0; i--) - { - n0 = mptr[i]; -#if UDIV_TIME > 2 * UMUL_TIME - udiv_qrnnd_preinv (mptr[i], n1, n1, n0, big_base, big_base_inverted); -#else - udiv_qrnnd (mptr[i], n1, n1, n0, big_base); -#endif - } - -#if UDIV_NEEDS_NORMALIZATION || UDIV_TIME > 2 * UMUL_TIME - /* If we shifted above (at previous UDIV_NEEDS_NORMALIZATION tests) - the remainder will be up-shifted here. Compensate. */ - n1 >>= normalization_steps; -#endif - - /* Convert N1 from BIG_BASE to a string of digits in BASE - using single precision operations. */ - for (i = dig_per_u - 1; i >= 0; i--) - { - *--s = n1 % base; - n1 /= base; - if (n1 == 0 && msize == 0) - break; - } - } - - while (s != str) - *--s = 0; - return out_len; - } -} diff --git a/sysdeps/generic/prof-freq.c b/sysdeps/generic/prof-freq.c index c69b43e..4ad4212 100644 --- a/sysdeps/generic/prof-freq.c +++ b/sysdeps/generic/prof-freq.c @@ -55,62 +55,3 @@ __profile_frequency () return 0; return (1000000 / tim.it_interval.tv_usec); } -/* Return frequency of ticks reported by profil. Generic version. */ -/*- - * Copyright (c) 1983, 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - - -#include <sys/types.h> -#include <sys/time.h> - -int -__profile_frequency () -{ - /* - * Discover the tick frequency of the machine if something goes wrong, - * we return 0, an impossible hertz. - */ - struct itimerval tim; - - tim.it_interval.tv_sec = 0; - tim.it_interval.tv_usec = 1; - tim.it_value.tv_sec = 0; - tim.it_value.tv_usec = 0; - setitimer(ITIMER_REAL, &tim, 0); - setitimer(ITIMER_REAL, 0, &tim); - if (tim.it_interval.tv_usec < 2) - return 0; - return (1000000 / tim.it_interval.tv_usec); -} - - diff --git a/sysdeps/i386/strrchr.S b/sysdeps/i386/strrchr.S index 26d6a22..58058e1 100644 --- a/sysdeps/i386/strrchr.S +++ b/sysdeps/i386/strrchr.S @@ -1,6 +1,6 @@ -/* strchr (str, ch) -- Return pointer to last occurrence of CH in STR. +/* strrchr (str, ch) -- Return pointer to last occurrence of CH in STR. For Intel 80x86, x>=3. -Copyright (C) 1994, 1995 Free Software Foundation, Inc. +Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu> Some optimisations by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au> This file is part of the GNU C Library. @@ -84,7 +84,7 @@ L12: orb %dl, %dl /* is NUL? */ cmpb %dl, %cl /* compare byte */ jne L13 /* target found => return */ movl %esi, %eax /* remember pointer as result */ -L13: orb %cl, %cl /* is NUL? */ +L13: orb %dl, %dl /* is NUL? */ jz L2 /* yes => return NULL */ incl %esi /* increment pointer */ @@ -134,7 +134,11 @@ L13: orb %cl, %cl /* is NUL? */ /* These fill bytes make the main loop be correctly aligned. We cannot use align because it is not the following instruction which should be aligned. */ - .byte 0, 0, 0, 0, 0, 0, 0, 0 + .byte 0, 0 +#ifndef PROF + /* Profiling adds some code and so changes the alignment. */ + .byte 0 +#endif L4: subl $4, %esi /* adjust pointer */ L41: subl $4, %esi diff --git a/sysdeps/ieee754/cbrt.c b/sysdeps/ieee754/cbrt.c deleted file mode 100644 index fe5fb95..0000000 --- a/sysdeps/ieee754/cbrt.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) 1985, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef lint -static char sccsid[] = "@(#)cbrt.c 8.1 (Berkeley) 6/4/93"; -#endif /* not lint */ - -#include <sys/cdefs.h> - -/* kahan's cube root (53 bits IEEE double precision) - * for IEEE machines only - * coded in C by K.C. Ng, 4/30/85 - * - * Accuracy: - * better than 0.667 ulps according to an error analysis. Maximum - * error observed was 0.666 ulps in an 1,000,000 random arguments test. - * - * Warning: this code is semi machine dependent; the ordering of words in - * a floating point number must be known in advance. I assume that the - * long interger at the address of a floating point number will be the - * leading 32 bits of that floating point number (i.e., sign, exponent, - * and the 20 most significant bits). - * On a National machine, it has different ordering; therefore, this code - * must be compiled with flag -DNATIONAL. - */ -#if !defined(vax)&&!defined(tahoe) - -static const unsigned long - B1 = 715094163, /* B1 = (682-0.03306235651)*2**20 */ - B2 = 696219795; /* B2 = (664-0.03306235651)*2**20 */ -static const double - C= 19./35., - D= -864./1225., - E= 99./70., - F= 45./28., - G= 5./14.; - -double cbrt(x) -double x; -{ - double r,s,t=0.0,w; - unsigned long *px = (unsigned long *) &x, - *pt = (unsigned long *) &t, - mexp,sign; - -#ifdef national /* ordering of words in a floating points number */ - const int n0=1,n1=0; -#else /* national */ - const int n0=0,n1=1; -#endif /* national */ - - mexp=px[n0]&0x7ff00000; - if(mexp==0x7ff00000) return(x); /* cbrt(NaN,INF) is itself */ - if(x==0.0) return(x); /* cbrt(0) is itself */ - - sign=px[n0]&0x80000000; /* sign= sign(x) */ - px[n0] ^= sign; /* x=|x| */ - - - /* rough cbrt to 5 bits */ - if(mexp==0) /* subnormal number */ - {pt[n0]=0x43500000; /* set t= 2**54 */ - t*=x; pt[n0]=pt[n0]/3+B2; - } - else - pt[n0]=px[n0]/3+B1; - - - /* new cbrt to 23 bits, may be implemented in single precision */ - r=t*t/x; - s=C+r*t; - t*=G+F/(s+E+D/s); - - /* chopped to 20 bits and make it larger than cbrt(x) */ - pt[n1]=0; pt[n0]+=0x00000001; - - - /* one step newton iteration to 53 bits with error less than 0.667 ulps */ - s=t*t; /* t*t is exact */ - r=x/s; - w=t+t; - r=(r-t)/(w+r); /* r-t is exact */ - t=t+t*r; - - - /* retore the sign bit */ - pt[n0] |= sign; - return(t); -} -#endif diff --git a/sysdeps/ieee754/drem.c b/sysdeps/ieee754/drem.c deleted file mode 100644 index cab3a04..0000000 --- a/sysdeps/ieee754/drem.c +++ /dev/null @@ -1,107 +0,0 @@ -/* Copyright (C) 1992, 1995 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 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. */ - -/* - * Copyright (c) 1985 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted provided - * that: (1) source distributions retain this entire copyright notice and - * comment, and (2) distributions including binaries display the following - * acknowledgement: ``This product includes software developed by the - * University of California, Berkeley and its contributors'' in the - * documentation or other materials provided with the distribution and in - * all advertising materials mentioning features or use of this software. - * Neither the name of the University nor the names of its contributors may - * be used to endorse or promote products derived from this software without - * specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include <ansidecl.h> -#include <math.h> -#include <float.h> -#include "ieee754.h" - -/* Return the remainder of X/Y. */ -double -DEFUN(__drem, (x, y), - double x AND double y) -{ - union ieee754_double ux, uy; - - ux.d = x; - uy.d = y; -#define x ux.d -#define y uy.d - - uy.ieee.negative = 0; - - if (!__finite (x) || y == 0.0) - return NAN; - else if (__isnan (y)) - return y; - else if (__isinf (y)) - return x; - else if (uy.ieee.exponent <= 1) - { - /* Subnormal (or almost subnormal) Y value. */ - double b = __scalb (1.0, 54); - y *= b; - x = __drem (x, y); - x *= b; - return __drem (x, y) / b; - } - else if (y >= 1.7e308 / 2) - { - y /= 2; - x /= 2; - return __drem (x, y) * 2; - } - else - { - union ieee754_double a; - double b; - unsigned int negative = ux.ieee.negative; - a.d = y + y; - b = y / 2; - ux.ieee.negative = 0; - while (x > a.d) - { - unsigned short int k = ux.ieee.exponent - a.ieee.exponent; - union ieee754_double tmp; - tmp.d = a.d; - tmp.ieee.exponent += k; - if (x < tmp.d) - --tmp.ieee.exponent; - x -= tmp.d; - } - if (x > b) - { - x -= y; - if (x >= b) - x -= y; - } - ux.ieee.negative ^= negative; - return x; - } -} - -weak_alias (__drem, drem) diff --git a/sysdeps/ieee754/logb.c b/sysdeps/ieee754/logb.c deleted file mode 100644 index 918de9e..0000000 --- a/sysdeps/ieee754/logb.c +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (C) 1992, 1995 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 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. */ - -#include <ansidecl.h> -#include <math.h> -#include <float.h> -#include "ieee754.h" - -/* Return the base 2 signed integral exponent of X. */ -double -DEFUN(__logb, (x), double x) -{ - union ieee754_double u; - - if (__isnan (x)) - return x; - else if (__isinf (x)) - return HUGE_VAL; - else if (x == 0.0) - return - HUGE_VAL; - - u.d = x; - - if (u.ieee.exponent == 0) - /* A denormalized number. - Multiplying by 2 ** DBL_MANT_DIG normalizes it; - we then subtract the DBL_MANT_DIG we added to the exponent. */ - return (__logb (x * ldexp (1.0, DBL_MANT_DIG)) - DBL_MANT_DIG); - - return (int) u.ieee.exponent - (DBL_MAX_EXP - 1); -} - -weak_alias (__logb, logb) diff --git a/sysdeps/ieee754/sqrt.c b/sysdeps/ieee754/sqrt.c deleted file mode 100644 index 7e350e0..0000000 --- a/sysdeps/ieee754/sqrt.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) 1985 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted provided - * that: (1) source distributions retain this entire copyright notice and - * comment, and (2) distributions including binaries display the following - * acknowledgement: ``This product includes software developed by the - * University of California, Berkeley and its contributors'' in the - * documentation or other materials provided with the distribution and in - * all advertising materials mentioning features or use of this software. - * Neither the name of the University nor the names of its contributors may - * be used to endorse or promote products derived from this software without - * specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include <ansidecl.h> -#include <errno.h> -#include <math.h> - -/* Return the square root of X. */ -double -DEFUN (sqrt, (x), double x) -{ - double q, s, b, r, t; - CONST double zero = 0.0; - int m, n, i; - - /* sqrt (NaN) is NaN; sqrt (+-0) is +-0. */ - if (__isnan (x) || x == zero) - return x; - - if (x < zero) - return zero / zero; - - /* sqrt (Inf) is Inf. */ - if (__isinf (x)) - return x; - - /* Scale X to [1,4). */ - n = __logb (x); - x = __scalb (x, -n); - m = __logb (x); - if (m != 0) - /* Subnormal number. */ - x = __scalb (x, -m); - - m += n; - n = m / 2; - - if ((n + n) != m) - { - x *= 2; - --m; - n = m / 2; - } - - /* Generate sqrt (X) bit by bit (accumulating in Q). */ - q = 1.0; - s = 4.0; - x -= 1.0; - r = 1; - for (i = 1; i <= 51; i++) - { - t = s + 1; - x *= 4; - r /= 2; - if (t <= x) - { - s = t + t + 2, x -= t; - q += r; - } - else - s *= 2; - } - - /* Generate the last bit and determine the final rounding. */ - r /= 2; - x *= 4; - if (x == zero) - goto end; - (void) (100 + r); /* Trigger inexact flag. */ - if (s < x) - { - q += r; - x -= s; - s += 2; - s *= 2; - x *= 4; - t = (x - s) - 5; - b = 1.0 + 3 * r / 4; - if (b == 1.0) - goto end; /* B == 1: Round to zero. */ - b = 1.0 + r / 4; - if (b > 1.0) - t = 1; /* B > 1: Round to +Inf. */ - if (t >= 0) - q += r; - } /* Else round to nearest. */ - else - { - s *= 2; - x *= 4; - t = (x - s) - 1; - b = 1.0 + 3 * r / 4; - if (b == 1.0) - goto end; - b = 1.0 + r / 4; - if (b > 1.0) - t = 1; - if (t >= 0) - q += r; - } - -end: - return __scalb (q, n); -} diff --git a/sysdeps/m68k/fpu/__math.h b/sysdeps/m68k/fpu/__math.h index 2cbb4ca..4992aea 100644 --- a/sysdeps/m68k/fpu/__math.h +++ b/sysdeps/m68k/fpu/__math.h @@ -20,7 +20,7 @@ Cambridge, MA 02139, USA. */ #include <sys/cdefs.h> -#ifdef __NO_MATH_INLINES +#ifdef __NO_M81_MATH_INLINES /* This is used when defining the functions themselves. Define them with __ names, and with `static inline' instead of `extern inline' so the bodies will always be used, never an external function call. */ @@ -29,7 +29,7 @@ Cambridge, MA 02139, USA. */ #else #define __m81_u(x) x #define __m81_inline extern __inline -#define __MATH_INLINES 1 +#define __M81_MATH_INLINES 1 #endif /* Define a const math function. */ diff --git a/sysdeps/m68k/fpu/e_acos.c b/sysdeps/m68k/fpu/e_acos.c index ae77dab..61c374d 100644 --- a/sysdeps/m68k/fpu/e_acos.c +++ b/sysdeps/m68k/fpu/e_acos.c @@ -16,8 +16,9 @@ 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. */ -#include <ansidecl.h> +#define __NO_M81_MATH_INLINES #include <math.h> +#include "math_private.h" #ifndef FUNC #define FUNC __ieee754_acos @@ -27,7 +28,8 @@ Cambridge, MA 02139, USA. */ #endif float_type -DEFUN(FUNC, (x), float_type x) +FUNC (x) + float_type x; { return __m81_u(FUNC)(x); } diff --git a/sysdeps/m68k/fpu/e_fmod.c b/sysdeps/m68k/fpu/e_fmod.c index 0b2468c..bf2f7ed 100644 --- a/sysdeps/m68k/fpu/e_fmod.c +++ b/sysdeps/m68k/fpu/e_fmod.c @@ -16,8 +16,9 @@ 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. */ -#include <ansidecl.h> +#define __NO_M81_MATH_INLINES #include <math.h> +#include "math_private.h" #ifndef FUNC #define FUNC __ieee754_fmod @@ -27,7 +28,9 @@ Cambridge, MA 02139, USA. */ #endif float_type -DEFUN(FUNC, (x, y), float_type x AND float_type y) +FUNC (x, y) + float_type x; + float_type y; { return __m81_u(FUNC)(x, y); } diff --git a/sysdeps/m68k/fpu/k_cos.c b/sysdeps/m68k/fpu/k_cos.c index 61f566f..6bb9090 100644 --- a/sysdeps/m68k/fpu/k_cos.c +++ b/sysdeps/m68k/fpu/k_cos.c @@ -16,7 +16,9 @@ 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. */ +#define __NO_M81_MATH_INLINES #include <math.h> +#include "math_private.h" #ifndef FUNC #define FUNC cos diff --git a/sysdeps/m68k/fpu/k_sin.c b/sysdeps/m68k/fpu/k_sin.c index 3eed1d4..f10c7f9 100644 --- a/sysdeps/m68k/fpu/k_sin.c +++ b/sysdeps/m68k/fpu/k_sin.c @@ -16,7 +16,9 @@ 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. */ +#define __NO_M81_MATH_INLINES #include <math.h> +#include "math_private.h" #ifndef FUNC #define FUNC sin @@ -35,7 +37,7 @@ __CONCATX(__kernel_,FUNC) (x, y, iy) { float_type sin_x, cos_x, sin_y, cos_y; if (iy == 0) - return __m81_u_(__CONCATX(__,FUNC)) (x); + return __m81_u(__CONCATX(__,FUNC)) (x); __asm__ __volatile__ ("fsincosx %2,%0:%1" : "=f" (cos_x), "=f" (sin_x) : "f" (x)); __asm__ __volatile__ ("fsincosx %2,%0:%1" : "=f" (cos_y), "=f" (sin_y) diff --git a/sysdeps/m68k/fpu/k_tan.c b/sysdeps/m68k/fpu/k_tan.c index 7f1b729..9c222cd 100644 --- a/sysdeps/m68k/fpu/k_tan.c +++ b/sysdeps/m68k/fpu/k_tan.c @@ -16,7 +16,9 @@ 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. */ +#define __NO_M81_MATH_INLINES #include <math.h> +#include "math_private.h" #ifndef FUNC #define FUNC tan @@ -34,8 +36,8 @@ __CONCATX(__kernel_,FUNC) (x, y, iy) int iy; { float_type tan_x, tan_y; - tan_x = __m81_u_(__CONCATX(__,FUNC)) (x); - tan_y = __m81_u_(__CONCATX(__,FUNC)) (y); + tan_x = __m81_u(__CONCATX(__,FUNC)) (x); + tan_y = __m81_u(__CONCATX(__,FUNC)) (y); if (iy > 0) return (tan_x + tan_y) / (1 - tan_x * tan_y); else diff --git a/sysdeps/m68k/fpu/s_atan.c b/sysdeps/m68k/fpu/s_atan.c index 29717d4..99b3024 100644 --- a/sysdeps/m68k/fpu/s_atan.c +++ b/sysdeps/m68k/fpu/s_atan.c @@ -17,6 +17,7 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <ansidecl.h> +#define __NO_M81_MATH_INLINES #include <math.h> #ifndef FUNC diff --git a/sysdeps/m68k/fpu/s_frexp.c b/sysdeps/m68k/fpu/s_frexp.c index 16f3039..8b38086 100644 --- a/sysdeps/m68k/fpu/s_frexp.c +++ b/sysdeps/m68k/fpu/s_frexp.c @@ -17,6 +17,7 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <ansidecl.h> +#define __NO_M81_MATH_INLINES #include <math.h> #ifndef FUNC diff --git a/sysdeps/m68k/fpu/s_ilogb.c b/sysdeps/m68k/fpu/s_ilogb.c index c80a288..39c8714 100644 --- a/sysdeps/m68k/fpu/s_ilogb.c +++ b/sysdeps/m68k/fpu/s_ilogb.c @@ -17,6 +17,7 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <ansidecl.h> +#define __NO_M81_MATH_INLINES #include <math.h> #ifndef FUNC diff --git a/sysdeps/m68k/fpu/s_isinf.c b/sysdeps/m68k/fpu/s_isinf.c index 570a7ba..7d4b1c4 100644 --- a/sysdeps/m68k/fpu/s_isinf.c +++ b/sysdeps/m68k/fpu/s_isinf.c @@ -17,6 +17,7 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <ansidecl.h> +#define __NO_M81_MATH_INLINES #include <math.h> #ifndef FUNC diff --git a/sysdeps/m68k/fpu/s_ldexp.c b/sysdeps/m68k/fpu/s_ldexp.c index ea8bfba..18f4d43 100644 --- a/sysdeps/m68k/fpu/s_ldexp.c +++ b/sysdeps/m68k/fpu/s_ldexp.c @@ -17,6 +17,7 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <ansidecl.h> +#define __NO_M81_MATH_INLINES #include <math.h> #ifndef FUNC diff --git a/sysdeps/m68k/fpu/s_modf.c b/sysdeps/m68k/fpu/s_modf.c index f704260e..426d847 100644 --- a/sysdeps/m68k/fpu/s_modf.c +++ b/sysdeps/m68k/fpu/s_modf.c @@ -17,6 +17,7 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <ansidecl.h> +#define __NO_M81_MATH_INLINES #include <math.h> #ifndef FUNC diff --git a/sysdeps/m68k/isinfl.c b/sysdeps/m68k/s_isinfl.c index 1b06d47..1b06d47 100644 --- a/sysdeps/m68k/isinfl.c +++ b/sysdeps/m68k/s_isinfl.c diff --git a/sysdeps/m68k/isnanl.c b/sysdeps/m68k/s_isnanl.c index 38a9616..38a9616 100644 --- a/sysdeps/m68k/isnanl.c +++ b/sysdeps/m68k/s_isnanl.c diff --git a/sysdeps/mach/hurd/prof-freq.c b/sysdeps/mach/hurd/prof-freq.c index 5c0d307..a370703 100644 --- a/sysdeps/mach/hurd/prof-freq.c +++ b/sysdeps/mach/hurd/prof-freq.c @@ -1,4 +1,2 @@ /* __profile_frequency is in sysdeps/mach/hurd/profil.c. This file is here as a place-holder to prevent the use of sysdeps/generic/prof-freq.c. */ -/* __profile_frequency is in sysdeps/mach/hurd/profil.c. This file -is here as a place-holder to prevent the use of sysdeps/generic/prof-freq.c. */ diff --git a/sysdeps/sparc/sqrt.c b/sysdeps/sparc/e_sqrt.c index bff46e1..614965d 100644 --- a/sysdeps/sparc/sqrt.c +++ b/sysdeps/sparc/e_sqrt.c @@ -26,7 +26,7 @@ Cambridge, MA 02139, USA. */ /* Return the square root of X. */ double -DEFUN(sqrt, (x), double x) +DEFUN(__ieee754_sqrt, (x), double x) { register double result; asm("fsqrtd %1, %0" : "=f" (result) : "f" (x)); diff --git a/sysdeps/stub/cbrt.c b/sysdeps/stub/cbrt.c deleted file mode 100644 index a330b05..0000000 --- a/sysdeps/stub/cbrt.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 1992, 1995 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 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. */ - -#include <ansidecl.h> -#include <errno.h> -#include <math.h> - -/* Return the cube root of X. */ -double -DEFUN(cbrt, (x), double x) -{ - errno = ENOSYS; - return 0.0; -} - - -stub_warning (cbrt) diff --git a/sysdeps/stub/cos.c b/sysdeps/stub/cos.c deleted file mode 100644 index 81cf1b6..0000000 --- a/sysdeps/stub/cos.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 1991, 1995 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 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. */ - -#include <ansidecl.h> -#include <errno.h> -#include <math.h> - -/* Return the cosine of X. */ -double -DEFUN(cos, (x), double x) -{ - errno = ENOSYS; - return(0.0); -} - - -stub_warning (cos) diff --git a/sysdeps/stub/drem.c b/sysdeps/stub/drem.c deleted file mode 100644 index e4c7cea..0000000 --- a/sysdeps/stub/drem.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (C) 1992, 1995 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 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. */ - -#include <ansidecl.h> -#include <errno.h> -#include <math.h> - -/* Return the remainder of X/Y. */ -double -DEFUN(__drem, (x, y), - double x AND double y) -{ - errno = ENOSYS; - return 0.0; -} - -stub_warning (drem) -weak_alias (__drem, drem) diff --git a/sysdeps/stub/isinf.c b/sysdeps/stub/isinf.c deleted file mode 100644 index aa02eb1..0000000 --- a/sysdeps/stub/isinf.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (C) 1991, 1995 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 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. */ - -#include <ansidecl.h> -#include <math.h> - -/* Return 0 if VALUE is finite or NaN, +1 if it - is +Infinity, -1 if it is -Infinity. */ -int -DEFUN(__isinf, (value), double value) -{ - return 0; -} -weak_alias (__isinf, isinf) - -stub_warning (__isinf) diff --git a/sysdeps/stub/isinfl.c b/sysdeps/stub/isinfl.c deleted file mode 100644 index 71065c7..0000000 --- a/sysdeps/stub/isinfl.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (C) 1995 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 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. */ - -#include <math.h> - -#undef __isinfl -#undef isinfl - - -/* Return 0 if VALUE is finite or NaN, +1 if it - is +Infinity, -1 if it is -Infinity. */ -int -__isinfl (long double value) -{ - return 0; -} - -weak_alias (__isinfl, isinfl); diff --git a/sysdeps/stub/isnanl.c b/sysdeps/stub/isnanl.c deleted file mode 100644 index c785b35..0000000 --- a/sysdeps/stub/isnanl.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (C) 1995 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 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. */ - -#include <math.h> - -#undef __isnanl -#undef isnanl - - -/* Return nonzero if VALUE is not a number. */ - -int -__isnanl (long double value) -{ - return 0; -} - -weak_alias (__isnanl, isnanl); diff --git a/sysdeps/stub/logb.c b/sysdeps/stub/logb.c deleted file mode 100644 index f5af6bf..0000000 --- a/sysdeps/stub/logb.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (C) 1992, 1995 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 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. */ - -#include <ansidecl.h> -#include <math.h> -#include <errno.h> - -/* Return the base 2 signed integral exponent of X. */ -double -DEFUN(__logb, (x), double x) -{ - errno = ENOSYS; - return 0.0; -} -stub_warning (logb) -weak_alias (__logb, logb) diff --git a/sysdeps/stub/sin.c b/sysdeps/stub/sin.c deleted file mode 100644 index 7100661..0000000 --- a/sysdeps/stub/sin.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 1991, 1995 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 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. */ - -#include <ansidecl.h> -#include <errno.h> -#include <math.h> - -/* Return the sine of X. */ -double -DEFUN(sin, (x), double x) -{ - errno = ENOSYS; - return(0.0); -} - - -stub_warning (sin) diff --git a/sysdeps/stub/sqrt.c b/sysdeps/stub/sqrt.c deleted file mode 100644 index 8ca3459..0000000 --- a/sysdeps/stub/sqrt.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 1991, 1995 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 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. */ - -#include <ansidecl.h> -#include <errno.h> -#include <math.h> - -/* Return the square root of X. */ -double -DEFUN(sqrt, (x), double x) -{ - errno = ENOSYS; - return(0.0); -} - - -stub_warning (sqrt) diff --git a/sysdeps/tahoe/log10.c b/sysdeps/tahoe/log10.c deleted file mode 100644 index 2cf2cee..0000000 --- a/sysdeps/tahoe/log10.c +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright (C) 1991 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 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. */ - -#define FPCONST(hi0, lo0, hi1, lo1) { (hi0), (lo0), (hi1), (lo1) } - -#include <../sysdeps/vax/log10.c> - diff --git a/sysdeps/unix/sysv/linux/alpha/Dist b/sysdeps/unix/sysv/linux/alpha/Dist index d898d04..d79f1f2 100644 --- a/sysdeps/unix/sysv/linux/alpha/Dist +++ b/sysdeps/unix/sysv/linux/alpha/Dist @@ -4,3 +4,4 @@ ioperm.c init-first.h clone.S sys/io.h +llseek.S diff --git a/sysdeps/unix/sysv/linux/i386/init-first.h b/sysdeps/unix/sysv/linux/i386/init-first.h deleted file mode 100644 index 4c61f1b..0000000 --- a/sysdeps/unix/sysv/linux/i386/init-first.h +++ /dev/null @@ -1,27 +0,0 @@ -/* The job of this fragment it to find argc and friends for INIT. - This is done in one of two ways: either in the stack context - of program start, or having dlopen pass them in. */ - -#define SYSDEP_CALL_INIT(NAME, INIT) \ -void NAME (void *arg) \ -{ \ - int argc; \ - char **argv, **envp; \ - \ - __libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up; \ - \ - if (!__libc_multiple_libcs) \ - { \ - argc = (int) arg; \ - argv = (char **) &arg + 1; \ - envp = &argv[argc+1]; \ - } \ - else \ - { \ - argc = (int) arg; \ - argv = ((char ***) &arg)[1]; \ - envp = ((char ***) &arg)[2]; \ - } \ - \ - INIT (argc, argv, envp); \ -} diff --git a/sysdeps/unix/sysv/linux/m68k/init-first.h b/sysdeps/unix/sysv/linux/m68k/init-first.h deleted file mode 100644 index 7d8c320..0000000 --- a/sysdeps/unix/sysv/linux/m68k/init-first.h +++ /dev/null @@ -1,12 +0,0 @@ -/* This fragment is invoked in the stack context of program start. - Its job is to set up a pointer to argc as an argument, pass - control to `INIT', and, if necessary, clean up after the call - to leave the stack in the same condition it was found in. */ - -#define SYSDEP_CALL_INIT(NAME, INIT) \ - asm(".globl " #NAME "\n\t" \ - #NAME ":\n\t" \ - "pea %sp@(4)\n\t" \ - "jbsr " #INIT "\n\t" \ - "addq #4,%sp\n\t" \ - "rts"); diff --git a/sysdeps/vax/Dist b/sysdeps/vax/Dist index 9830be2..22a6930 100644 --- a/sysdeps/vax/Dist +++ b/sysdeps/vax/Dist @@ -1 +1,2 @@ DEFS.h +fl.h diff --git a/sysdeps/vax/bcmp.s b/sysdeps/vax/bcmp.s deleted file mode 100644 index d980feb..0000000 --- a/sysdeps/vax/bcmp.s +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 1983 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) - .asciz "@(#)bcmp.s 5.6 (Berkeley) 6/1/90" -#endif /* LIBC_SCCS and not lint */ - -/* bcmp(s1, s2, n) */ - -#include "DEFS.h" - -ENTRY(bcmp, 0) - movl 4(ap),r1 - movl 8(ap),r3 - movl 12(ap),r4 -1: - movzwl $65535,r0 - cmpl r4,r0 - jleq 2f - subl2 r0,r4 - cmpc3 r0,(r1),(r3) - jeql 1b - addl2 r4,r0 - ret -2: - cmpc3 r4,(r1),(r3) - ret diff --git a/sysdeps/vax/index.s b/sysdeps/vax/index.s deleted file mode 100644 index e599b27..0000000 --- a/sysdeps/vax/index.s +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 1980 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) - .asciz "@(#)index.s 5.6 (Berkeley) 6/1/90" -#endif /* LIBC_SCCS and not lint */ - -/* - * Find the first occurence of c in the string cp. - * Return pointer to match or null pointer. - * - * char * - * index(cp, c) - * char *cp, c; - */ -#include "DEFS.h" - -ENTRY(index, 0) - movq 4(ap),r1 # r1 = cp; r2 = c - tstl r2 # check for special case c == '\0' - bneq 2f -1: - locc $0,$65535,(r1) # just find end of string - beql 1b # still looking - movl r1,r0 # found it - ret -2: - moval tbl,r3 # r3 = address of table - bbss $0,(r3),5f # insure not reentering - movab (r3)[r2],r5 # table entry for c - incb (r5) - movzwl $65535,r4 # fast access -3: - scanc r4,(r1),(r3),$1 # look for c or '\0' - beql 3b # still looking - movl r1,r0 # return pointer to char - tstb (r0) # if have found '\0' - bneq 4f - clrl r0 # else return 0 -4: - clrb (r5) # clean up table - clrb (r3) - ret - - .data -tbl: .space 256 - .text - -/* - * Reentrant, but slower version of index - */ -5: - movl r1,r3 -6: - locc $0,$65535,(r3) # look for '\0' - bneq 7f - locc r2,$65535,(r3) # look for c - bneq 8f - movl r1,r3 # reset pointer and ... - jbr 6b # ... try again -7: - subl3 r3,r1,r4 # length of short block - incl r4 # +1 for '\0' - locc r2,r4,(r3) # look for c - bneq 8f - ret -8: - movl r1,r0 # return pointer to char - ret diff --git a/sysdeps/vax/infnan.c b/sysdeps/vax/infnan.c deleted file mode 100644 index 62ec9dc..0000000 --- a/sysdeps/vax/infnan.c +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright (C) 1991, 1992, 1995 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 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. */ - -#ifndef __GNUC__ - #error This file uses GNU C extensions; you must compile with GCC. -#else - -#include <ansidecl.h> -#include <errno.h> -#include <math.h> - -/* Deal with an infinite or NaN result. - If ERROR is ERANGE, result is +Inf; - if ERROR is - ERANGE, result is -Inf; - otherwise result is NaN. - This will set `errno' to either ERANGE or EDOM, - and may return an infinity or NaN, or may do something else. */ -double -DEFUN(__infnan, (error), int error) -{ - switch (error) - { - case ERANGE: - errno = ERANGE; - break; - - case - ERANGE: - errno = ERANGE; - break; - - default: - errno = EDOM; - break; - } - - /* Trigger a reserved operand fault. */ - { - double result; - asm volatile("emodd %1, %1, %2, %0, %0" : "=r" (result) : - "i" (0), "i" (0x8000)); - return result; - } -} - -#endif - -weak_alias (__infnan, infnan) diff --git a/sysdeps/vax/log10.c b/sysdeps/vax/log10.c deleted file mode 100644 index 0874177..0000000 --- a/sysdeps/vax/log10.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (C) 1991 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 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. */ - -#include <ansidecl.h> - -#ifndef FPCONST -#define FPCONST(hi0, lo0, hi1, lo1) { (lo0), (hi0), (lo1), (hi1) } -#endif - -static CONST short int ln10[] = FPCONST(0x4113, 0x5d8d, 0xddaa, 0xa8ac); -#define LN10 (*(CONST double *) ln10) - -#include <../sysdeps/generic/log10.c> diff --git a/sysdeps/vax/memcmp.s b/sysdeps/vax/memcmp.s index 3854fd8..f7e47de 100644 --- a/sysdeps/vax/memcmp.s +++ b/sysdeps/vax/memcmp.s @@ -59,3 +59,5 @@ ENTRY(memcmp, 0) cmpc3 r5,(r1),(r3) jeql 0b /* loop if same */ jbr 1b + +weak_alias (memcmp, bcmp) diff --git a/sysdeps/vax/rindex.s b/sysdeps/vax/rindex.s deleted file mode 100644 index 76d7e29..0000000 --- a/sysdeps/vax/rindex.s +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (c) 1983 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) - .asciz "@(#)rindex.s 5.6 (Berkeley) 6/1/90" -#endif /* LIBC_SCCS and not lint */ - -/* - * Find the last occurence of c in the string cp. - * Return pointer to match or null pointer. - * - * char * - * rindex(cp, c) - * char *cp, c; - */ -#include "DEFS.h" - -ENTRY(rindex, 0) - movq 4(ap),r1 # r1 = cp; r2 = c - tstl r2 # check for special case c == '\0' - bneq 2f -1: - locc $0,$65535,(r1) # just find end of string - beql 1b # still looking - movl r1,r0 # found it - ret -2: - moval tbl,r3 # r3 = address of table - bbss $0,(r3),5f # insure not reentering - movab (r3)[r2],r5 # table entry for c - incb (r5) - clrl r4 # last found -3: - scanc $65535,(r1),(r3),$1 # look for c or '\0' - beql 3b # keep looking - tstb (r1) # if have found '\0' - beql 4f # we are done - movl r1,r4 # save most recently found - incl r1 # skip over character - jbr 3b # keep looking -4: - movl r4,r0 # return last found (if any) - clrb (r5) # clean up table - clrb (r3) - ret - - .data -tbl: .space 256 - .text - -/* - * Reentrant, but slower version of rindex - */ -5: - movl r1,r3 - clrl r4 # r4 = pointer to last match -6: - locc $0,$65535,(r3) # look for '\0' - bneq 8f - decw r0 # r0 = 65535 -1: - locc r2,r0,(r3) # look for c - bneq 7f - movl r1,r3 # reset pointer and ... - jbr 6b # ... try again -7: - movl r1,r4 # stash pointer ... - addl3 $1,r1,r3 # ... skip over match and ... - decl r0 # ... decrement count - jbr 6b # ... try again -8: - subl3 r3,r1,r0 # length of short block - incl r0 # +1 for '\0' -9: - locc r2,r0,(r3) # look for c - beql 0f - movl r1,r4 # stash pointer ... - addl3 $1,r1,r3 # ... skip over match ... - decl r0 # ... adjust count and ... - jbr 9b # ... try again -0: - movl r4,r0 # return stashed pointer - ret diff --git a/sysdeps/vax/strchr.s b/sysdeps/vax/strchr.s index 18b5383..1683f56 100644 --- a/sysdeps/vax/strchr.s +++ b/sysdeps/vax/strchr.s @@ -103,3 +103,5 @@ Lreent: beql 2f /* not found: return NULL */ movl r1,r0 2: ret + +weak_alias (strchr, index) diff --git a/sysdeps/vax/strrchr.s b/sysdeps/vax/strrchr.s index f292eac..dffcdda 100644 --- a/sysdeps/vax/strrchr.s +++ b/sysdeps/vax/strrchr.s @@ -112,3 +112,5 @@ Lreent: 3: movl r5,r0 /* return stashed pointer */ ret + +weak_alias (strrchr, rindex) diff --git a/time/africa b/time/africa index d55b598..110f540 100644 --- a/time/africa +++ b/time/africa @@ -1,10 +1,10 @@ -# @(#)africa 7.13 +# @(#)africa 7.14 # 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 # tz@elsie.nci.nih.gov for general use in the future). -# From Paul Eggert <eggert@twinsun.com> (November 18, 1993): +# From Paul Eggert <eggert@twinsun.com> (1996-09-03): # # A good source for time zone historical data outside the U.S. is # Thomas G. Shanks, The International Atlas (3rd edition), @@ -61,64 +61,95 @@ # Omit `.' from abbreviations in names, e.g. prefer `St_Helena' # to `St._Helena'. # -# We typically use traditional English time zone abbreviations, -# and assume that applications translate them to other languages -# as part of the normal localization process. +# For time zone abbreviations like `EST' I used the following rules, +# in decreasing order of importance: +# +# Use abbreviations that consist of 3 or more upper-case Ascii letters, +# except use "___" for locations while uninhabited. +# Posix.1 requires at least 3 characters, and the restriction to +# upper-case Ascii letters follows most traditions. +# Previous editions of this database also used characters like +# ' ' and '?', but these characters have a special meaning to +# the shell and cause commands like +# set `date` +# to have unexpected effects. In theory, the character set could +# be !%./@A-Z^_a-z{}, but these tables use only upper-case +# Ascii letters (and "___"). +# Use abbreviations that are in common use among English-speakers, +# e.g. `EST' for Eastern Standard Time in North America. +# We assume that applications translate them to other languages +# as part of the normal localization process; for example, +# a French application might translate `EST' to `HNE'. +# For zones whose times are taken from a city's longitude, use the +# traditional xMT notation, e.g. `PMT' for Paris Mean Time. +# The only name like this in current use is `GMT'. +# If there is no common English abbreviation, abbreviate the English +# translation of the usual phrase used by native speakers. +# If this is not available or is a phrase mentioning the country +# (e.g. ``Cape Verde Time''), then: +# +# When a country has a single or principal time zone region, +# append `T' to the country's ISO code, e.g. `CVT' for +# Cape Verde Time. For summer time append `ST'; +# for double summer time append `DST'; etc. +# When a country has multiple time zones, take the first three +# letters of an English place name identifying each zone +# and then append `T', `ST', etc. as before; +# e.g. `MOSST' for MOScow Summer Time. # -# I made up the following time zone abbreviations; corrections are welcome! +# +# For Africa I invented the following time zone abbreviations. # LMT Local Mean Time -# -2:00 CVT Cape Verde Time (no longer used) -# -1:00 AAT Atlantic Africa Time +# -1:00 AAT Atlantic Africa Time (no longer used) # 0:00 WAT West Africa Time # 1:00 CAT Central Africa Time # 2:00 SAT South Africa Time # 3:00 EAT East Africa Time -# 4:00 SMT Seychelles and Mascarene Time # The final `T' is replaced by `ST' for summer time, e.g. `SAST'. # BEAT is British East Africa Time, which was 2:30 before 1948 and 2:45 after. # Algeria # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Algeria 1916 only - Jun 14 23:00s 1:00 " DST" +Rule Algeria 1916 only - Jun 14 23:00s 1:00 S Rule Algeria 1916 1919 - Oct Sun<=7 23:00s 0 - -Rule Algeria 1917 only - Mar 24 23:00s 1:00 " DST" -Rule Algeria 1918 only - Mar 9 23:00s 1:00 " DST" -Rule Algeria 1919 only - Mar 1 23:00s 1:00 " DST" -Rule Algeria 1920 only - Feb 14 23:00s 1:00 " DST" +Rule Algeria 1917 only - Mar 24 23:00s 1:00 S +Rule Algeria 1918 only - Mar 9 23:00s 1:00 S +Rule Algeria 1919 only - Mar 1 23:00s 1:00 S +Rule Algeria 1920 only - Feb 14 23:00s 1:00 S Rule Algeria 1920 only - Oct 23 23:00s 0 - -Rule Algeria 1921 only - Mar 14 23:00s 1:00 " DST" +Rule Algeria 1921 only - Mar 14 23:00s 1:00 S Rule Algeria 1921 only - Jun 21 23:00s 0 - -Rule Algeria 1939 only - Sep 11 23:00s 1:00 " DST" +Rule Algeria 1939 only - Sep 11 23:00s 1:00 S Rule Algeria 1939 only - Nov 19 1:00 0 - -Rule Algeria 1944 1945 - Apr Mon<=7 2:00 1:00 " DST" +Rule Algeria 1944 1945 - Apr Mon<=7 2:00 1:00 S Rule Algeria 1944 only - Oct 8 2:00 0 - Rule Algeria 1945 only - Sep 16 1:00 0 - -Rule Algeria 1971 only - Apr 25 23:00s 1:00 " DST" +Rule Algeria 1971 only - Apr 25 23:00s 1:00 S Rule Algeria 1971 only - Sep 26 23:00s 0 - -Rule Algeria 1977 only - May 6 0:00 1:00 " DST" +Rule Algeria 1977 only - May 6 0:00 1:00 S Rule Algeria 1977 only - Oct 21 0:00 0 - -Rule Algeria 1978 only - Mar 24 1:00 1:00 " DST" +Rule Algeria 1978 only - Mar 24 1:00 1:00 S Rule Algeria 1978 only - Sep 22 3:00 0 - -Rule Algeria 1980 only - Apr 25 0:00 1:00 " DST" +Rule Algeria 1980 only - Apr 25 0:00 1:00 S Rule Algeria 1980 only - Oct 31 2:00 0 - # Shanks gives 0:09 for Paris Mean Time; go with Howse's more precise 0:09:21. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time - 0:00 Algeria WET%s 1940 Feb 25 2:00 - 1:00 Algeria MET%s 1946 Oct 7 + 0:00 Algeria WE%sT 1940 Feb 25 2:00 + 1:00 Algeria CE%sT 1946 Oct 7 0:00 - WET 1956 Jan 29 - 1:00 - MET 1963 Apr 14 - 0:00 Algeria WET%s 1977 Oct 21 - 1:00 Algeria MET%s 1979 Oct 26 - 0:00 Algeria WET%s 1981 May - 1:00 - MET + 1:00 - CET 1963 Apr 14 + 0:00 Algeria WE%sT 1977 Oct 21 + 1:00 Algeria CE%sT 1979 Oct 26 + 0:00 Algeria WE%sT 1981 May + 1:00 - CET # Angola # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Luanda 0:52:56 - LMT 1892 - 0:52 - LMT 1911 May 26 # Luanda Mean Time + 0:52:04 - LMT 1911 May 26 # Luanda Mean Time? 1:00 - CAT # Bassas da India @@ -160,7 +191,7 @@ Zone Atlantic/Cape_Verde -1:34:04 - LMT 1907 # Praia -2:00 - CVT 1942 Sep -2:00 1:00 CVST 1945 Oct 15 -2:00 - CVT 1975 Nov 25 2:00 - -1:00 - AAT + -1:00 - CVT # Central African Republic # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -211,28 +242,28 @@ Zone Africa/Djibouti 2:52:36 - LMT 1911 Jul # From Shanks (1991): # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Egypt 1940 only - Jul 15 0:00 1:00 " DST" +Rule Egypt 1940 only - Jul 15 0:00 1:00 S Rule Egypt 1940 only - Oct 1 0:00 0 - -Rule Egypt 1941 only - Apr 15 0:00 1:00 " DST" +Rule Egypt 1941 only - Apr 15 0:00 1:00 S Rule Egypt 1941 only - Sep 16 0:00 0 - -Rule Egypt 1942 1944 - Apr 1 0:00 1:00 " DST" +Rule Egypt 1942 1944 - Apr 1 0:00 1:00 S Rule Egypt 1942 only - Oct 27 0:00 0 - Rule Egypt 1943 1945 - Nov 1 0:00 0 - -Rule Egypt 1945 only - Apr 16 0:00 1:00 " DST" -Rule Egypt 1957 only - May 10 0:00 1:00 " DST" +Rule Egypt 1945 only - Apr 16 0:00 1:00 S +Rule Egypt 1957 only - May 10 0:00 1:00 S Rule Egypt 1957 1958 - Oct 1 0:00 0 - -Rule Egypt 1958 only - May 1 0:00 1:00 " DST" -Rule Egypt 1959 1981 - May 1 1:00 1:00 " DST" +Rule Egypt 1958 only - May 1 0:00 1:00 S +Rule Egypt 1959 1981 - May 1 1:00 1:00 S Rule Egypt 1959 1965 - Sep 30 3:00 0 - Rule Egypt 1966 max - Oct 1 3:00 0 - -Rule Egypt 1982 only - Jul 25 1:00 1:00 " DST" -Rule Egypt 1983 only - Jul 12 1:00 1:00 " DST" -Rule Egypt 1984 1988 - May 1 1:00 1:00 " DST" -Rule Egypt 1989 only - May 6 1:00 1:00 " DST" -Rule Egypt 1990 max - May 1 1:00 1:00 " DST" +Rule Egypt 1982 only - Jul 25 1:00 1:00 S +Rule Egypt 1983 only - Jul 12 1:00 1:00 S +Rule Egypt 1984 1988 - May 1 1:00 1:00 S +Rule Egypt 1989 only - May 6 1:00 1:00 S +Rule Egypt 1990 max - May 1 1:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Cairo 2:05:00 - LMT 1900 Oct - 2:00 Egypt EET%s + 2:00 Egypt EE%sT # Equatorial Guinea # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -243,14 +274,14 @@ Zone Africa/Malabo 0:35:08 - LMT 1912 # Eritrea # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Asmera 2:35:32 - LMT 1870 - 2:36 - AMT 1890 # Asmera Mean Time - 2:35 - AAMT 1936 May 5 # Addis Ababa MT + 2:35:32 - AMT 1890 # Asmera Mean Time + 2:35:20 - AAMT 1936 May 5 # Addis Ababa MT? 3:00 - EAT # Ethiopia # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Addis_Ababa 2:34:48 - LMT 1870 - 2:35 - AAMT 1936 May 5 # Addis Ababa MT + 2:35:20 - AAMT 1936 May 5 # Addis Ababa MT? 3:00 - EAT # Europa Island @@ -264,17 +295,17 @@ Zone Africa/Libreville 0:37:48 - LMT 1912 # Gambia # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Banjul -1:06:36 - LMT 1912 - -1:07 - BMT 1935 # Banjul Mean Time + -1:06:36 - BMT 1935 # Banjul Mean Time -1:00 - AAT 1964 0:00 - WAT # Ghana -# From Paul Eggert <eggert@twinsun.com> (November 18, 1993): -# WATDT is my invention for ``West Africa one-Third Daylight Time''. +# From Paul Eggert <eggert@twinsun.com> (1996-09-03): +# WATST is my invention for ``West Africa one-Third Summer Time''. # From Shanks (1991): # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Whitman says DST was observed from 1931 to ``the present''; go with Shanks. -Rule Ghana 1936 1942 - Sep 1 0:00 0:20 WATDT +Rule Ghana 1936 1942 - Sep 1 0:00 0:20 WATST Rule Ghana 1936 1942 - Dec 31 0:00 0 WAT # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Accra -0:00:52 - LMT 1918 @@ -329,7 +360,7 @@ Zone Africa/Maseru 1:50:00 - LMT 1903 Mar # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Monrovia -0:43:08 - LMT 1882 -0:43:08 - MMT 1919 Mar # Monrovia Mean Time - -0:44:30 - LST 1972 May # Liberia Standard Time + -0:44:30 - LRT 1972 May # Liberia Time 0:00 - WAT ############################################################################### @@ -345,28 +376,28 @@ Zone Africa/Monrovia -0:43:08 - LMT 1882 # From Shanks (1991): # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Libya 1951 only - Oct 14 2:00 1:00 " DST" +Rule Libya 1951 only - Oct 14 2:00 1:00 S Rule Libya 1952 only - Jan 1 0:00 0 - -Rule Libya 1953 only - Oct 9 2:00 1:00 " DST" +Rule Libya 1953 only - Oct 9 2:00 1:00 S Rule Libya 1954 only - Jan 1 0:00 0 - -Rule Libya 1955 only - Sep 30 0:00 1:00 " DST" +Rule Libya 1955 only - Sep 30 0:00 1:00 S Rule Libya 1956 only - Jan 1 0:00 0 - -Rule Libya 1982 1984 - Apr 1 0:00 1:00 " DST" +Rule Libya 1982 1984 - Apr 1 0:00 1:00 S Rule Libya 1982 1985 - Oct 1 0:00 0 - -Rule Libya 1985 only - Apr 6 0:00 1:00 " DST" -Rule Libya 1986 only - Apr 4 0:00 1:00 " DST" +Rule Libya 1985 only - Apr 6 0:00 1:00 S +Rule Libya 1986 only - Apr 4 0:00 1:00 S Rule Libya 1986 only - Oct 3 0:00 0 - -Rule Libya 1987 1989 - Apr 1 0:00 1:00 " DST" +Rule Libya 1987 1989 - Apr 1 0:00 1:00 S Rule Libya 1987 1990 - Oct 1 0:00 0 - -Rule Libya 1990 only - May 4 0:00 1:00 " DST" +Rule Libya 1990 only - May 4 0:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Tripoli 0:52:44 - LMT 1920 - 1:00 Libya MET%s 1959 + 1:00 Libya CE%sT 1959 2:00 - EET 1982 # From Paul Eggert <eggert@twinsun.com> (1995-12-19): # usno1995 (from OAG) says Libya uses 2:00 all year, as they did before 1982. # We don't know when they switched back. We'll guess 1991. - 1:00 Libya MET%s 1991 + 1:00 Libya CE%sT 1991 2:00 - EET # Madagascar @@ -401,7 +432,7 @@ Zone Africa/Nouakchott -1:03:48 - LMT 1912 # Mauritius # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis - 4:00 - SMT + 4:00 - MUT # Mauritius Time # Agalega Is, Rodriguez # no information; probably like Indian/Mauritius @@ -411,29 +442,31 @@ Zone Indian/Mayotte 3:00:56 - LMT 1911 Jul # Mamoutzou 3:00 - EAT # Morocco -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Morocco 1939 only - Sep 12 0:00 1:00 " DST" +# rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule Morocco 1939 only - Sep 12 0:00 1:00 S Rule Morocco 1939 only - Nov 19 0:00 0 - -Rule Morocco 1940 only - Feb 25 0:00 1:00 " DST" +Rule Morocco 1940 only - Feb 25 0:00 1:00 S Rule Morocco 1945 only - Nov 18 0:00 0 - -Rule Morocco 1950 only - Jun 11 0:00 1:00 " DST" +Rule Morocco 1950 only - Jun 11 0:00 1:00 S Rule Morocco 1950 only - Oct 29 0:00 0 - -Rule Morocco 1967 only - Jun 3 12:00 1:00 " DST" +Rule Morocco 1967 only - Jun 3 12:00 1:00 S Rule Morocco 1967 only - Oct 1 0:00 0 - -Rule Morocco 1974 only - Jun 24 0:00 1:00 " DST" +Rule Morocco 1974 only - Jun 24 0:00 1:00 S Rule Morocco 1974 only - Sep 1 0:00 0 - -Rule Morocco 1976 1977 - May 1 0:00 1:00 " DST" +Rule Morocco 1976 1977 - May 1 0:00 1:00 S Rule Morocco 1976 only - Aug 1 0:00 0 - Rule Morocco 1977 only - Sep 28 0:00 0 - -Rule Morocco 1978 only - Jun 1 0:00 1:00 " DST" +Rule Morocco 1978 only - Jun 1 0:00 1:00 S Rule Morocco 1978 only - Aug 4 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26 - 0:00 Morocco WET%s 1984 Mar 16 - 1:00 - MET 1986 + 0:00 Morocco WE%sT 1984 Mar 16 + 1:00 - CET 1986 + 0:00 - WET +# Western Sahara +Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan + -1:00 - AAT 1976 Apr 14 0:00 - WET -# The following are controlled by Spain, and are like Europe/Madrid: -# Alboran, Alhucemas Is, Ceuta, Chafarinas Is, Melilla. # Mozambique # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -463,7 +496,7 @@ Zone Africa/Lagos 0:13:36 - LMT 1919 Sep # Reunion # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Indian/Reunion 3:41:52 - LMT 1911 Jun # Saint-Denis - 4:00 - SMT + 4:00 - RET # Reunion Time # Rwanda # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -473,7 +506,7 @@ Zone Africa/Kigali 2:00:16 - LMT 1935 Jun # St Helena # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Atlantic/St_Helena -0:22:48 - LMT 1890 # Jamestown - -0:06 - ?MT 1951 # a typo in Shanks? + -0:06 - SHT 1951 # St Helena Time (?) 0:00 - GMT # The other parts of the St Helena territory are similar: # Tristan da Cunha: on GMT, says Whitman @@ -483,7 +516,7 @@ Zone Atlantic/St_Helena -0:22:48 - LMT 1890 # Jamestown # Sao Tome and Principe # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Sao_Tome 0:26:56 - LMT 1884 - -0:37 - ?MT 1912 # a typo in Shanks? + -0:36:32 - LMT 1912 # Lisbon Mean Time 0:00 - WAT # Senegal @@ -495,7 +528,7 @@ Zone Africa/Dakar -1:09:44 - LMT 1912 # Seychelles # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Indian/Mahe 3:41:48 - LMT 1906 Jun # Victoria - 4:00 - SMT + 4:00 - SCT # Seychelles Time # Sierra Leone # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -506,7 +539,7 @@ Rule SL 1957 1962 - Jun 1 0:00 1:00 S Rule SL 1957 1962 - Sep 1 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Freetown -0:53:00 - LMT 1882 - -0:53 - FMT 1913 Jun + -0:53:00 - FMT 1913 Jun # Freetown Mean Time -1:00 SL AA%sT 1957 0:00 SL WA%sT @@ -537,13 +570,13 @@ Zone Africa/Johannesburg 1:52:00 - LMT 1892 Feb 8 # I verified this today by telephone with the Sudan Mission to the # United Nations: 212-573-6033 # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Sudan 1970 only - May 1 0:00 1:00 " DST" +Rule Sudan 1970 only - May 1 0:00 1:00 S Rule Sudan 1970 1985 - Oct 15 0:00 0 - -Rule Sudan 1971 only - Apr 30 0:00 1:00 " DST" -Rule Sudan 1972 1985 - Apr lastSun 0:00 1:00 " DST" +Rule Sudan 1971 only - Apr 30 0:00 1:00 S +Rule Sudan 1972 1985 - Apr lastSun 0:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Khartoum 2:10:08 - LMT 1931 - 2:00 Sudan EET%s + 2:00 Sudan EE%sT # Swaziland # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -567,34 +600,34 @@ Zone Africa/Lome 0:04:52 - LMT 1893 # Tunisia # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Tunisia 1939 only - Apr 15 23:00s 1:00 " DST" +Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S Rule Tunisia 1939 only - Nov 18 23:00s 0 - -Rule Tunisia 1940 only - Feb 25 23:00s 1:00 " DST" +Rule Tunisia 1940 only - Feb 25 23:00s 1:00 S Rule Tunisia 1941 only - Oct 6 0:00 0 - -Rule Tunisia 1942 only - Mar 9 0:00 1:00 " DST" +Rule Tunisia 1942 only - Mar 9 0:00 1:00 S Rule Tunisia 1942 only - Nov 2 3:00 0 - -Rule Tunisia 1943 only - Mar 29 2:00 1:00 " DST" +Rule Tunisia 1943 only - Mar 29 2:00 1:00 S Rule Tunisia 1943 only - Apr 17 2:00 0 - -Rule Tunisia 1943 only - Apr 25 2:00 1:00 " DST" +Rule Tunisia 1943 only - Apr 25 2:00 1:00 S Rule Tunisia 1943 only - Oct 4 2:00 0 - -Rule Tunisia 1944 1945 - Apr Mon>=1 2:00 1:00 " DST" +Rule Tunisia 1944 1945 - Apr Mon>=1 2:00 1:00 S Rule Tunisia 1944 only - Oct 8 0:00 0 - Rule Tunisia 1945 only - Sep 16 0:00 0 - -Rule Tunisia 1977 only - Apr 30 0:00s 1:00 " DST" +Rule Tunisia 1977 only - Apr 30 0:00s 1:00 S Rule Tunisia 1977 only - Sep 24 0:00s 0 - -Rule Tunisia 1978 only - May 1 0:00s 1:00 " DST" +Rule Tunisia 1978 only - May 1 0:00s 1:00 S Rule Tunisia 1978 only - Oct 1 0:00s 0 - -Rule Tunisia 1988 only - Jun 1 0:00s 1:00 " DST" +Rule Tunisia 1988 only - Jun 1 0:00s 1:00 S Rule Tunisia 1988 max - Sep lastSun 0:00s 0 - -Rule Tunisia 1989 only - Mar 26 0:00s 1:00 " DST" -Rule Tunisia 1990 only - May 1 0:00s 1:00 " DST" -Rule Tunisia 1991 max - Mar lastSun 0:00s 1:00 " DST" +Rule Tunisia 1989 only - Mar 26 0:00s 1:00 S +Rule Tunisia 1990 only - May 1 0:00s 1:00 S +Rule Tunisia 1991 max - Mar lastSun 0:00s 1:00 S # Shanks gives 0:09 for Paris Mean Time; go with Howse's more precise 0:09:21. # Shanks says the 1911 switch occurred on Mar 9; go with Howse's Mar 11. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Tunis 0:40:44 - LMT 1881 May 12 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time - 1:00 Tunisia MET%s + 1:00 Tunisia CE%sT # Uganda # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -608,7 +641,7 @@ Zone Africa/Kampala 2:09:40 - LMT 1928 Jul # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Kinshasa 1:01:12 - LMT 1897 Nov 9 1:00 - CAT -Zone Africa/Lumumbashi 1:49:52 - LMT 1897 Nov 9 +Zone Africa/Lubumbashi 1:49:52 - LMT 1897 Nov 9 2:00 - SAT # Zambia diff --git a/time/antarctica b/time/antarctica index 3c46c15..0c78eb6 100644 --- a/time/antarctica +++ b/time/antarctica @@ -1,25 +1,151 @@ -# @(#)antarctica 7.3 +# @(#)antarctica 7.4 -# From Arthur David Olson (February 13, 1988): -# No data available. +# From Paul Eggert (1996-09-03): +# To keep things manageable, we list only locations occupied year-round; +# see <URL:http://earth.agu.org/amen/nations.html> (1996-05-24). +# Unless otherwise specified, we have no time zone information. +# +# I made up all time zone abbreviations mentioned here; corrections welcome! +# FORMAT is `___' and GMTOFF is 0 for locations while uninhabited. -# Balleny Is -# British Antarctic Territories include -# South Orkney Is -# South Shetland Is +# Argentina - 6 year-round bases +# General Belgrano II +# 5 others -# Bouvet -# uninhabited +# Australia - territories +# Heard Island, McDonald Islands +# +# year-round bases +# Casey, Bailey Peninsula, since 1969 +# Davis, Vestfold Hills, since 1957-01-13 (except 1965-01 - 1969-02) +# Mawson, Holme Bay, since 1954-02-13 +# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Zone Antarctica/Casey 0 - ___ 1969 + 8:00 - WST # Western (Aus) Standard Time +#Zone Antartica/Davis unknown +Zone Antarctica/Mawson 0 - ___ 1954 Feb 13 + 6:00 - MAWT # Mawson Time +# References: +# <URL:http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html> (1996-07-15) +# <URL:http://www.antdiv.gov.au/aad/exop/sfo/mawson/video.html> (1996-04-19) -# French Southern and Antarctic Lands (no indigenous inhabitants) include -# Amsterdam Island -# Crozet Is -# Kerguelen Is -# St Paul Island +# Brazil - year-round base +# Ferraz, King George Island, since 1983/4 -# Heard Island, McDonald Is -# uninhabited +# Chile - 4 year-round bases -# Peter I Island +# China - year-round bases +# Great Wall, King George Island, since 1985-02-20 +# Zhongshan, Larsemann Hills, Prydz Bay, since 1989-02-26 + +# Finland - year-round base +# Aboa, Queen Maud Land, since 1988 + +# France +# +# French Southern Territories with year-round inhabitants +# Amsterdam Island +# Crozet Islands +# Kerguelen Islands +# St Paul Island +# +# year-round base +# Dumont d'Urville, Adelie Land, since IGY + +# Germany - year-round base +# Georg von Neumayer + +# India - year-round base +# Dakshin Gangotri + +# Japan - year-round bases +# Dome Fuji +# Syowa + +# S Korea - year-round base +# King Sejong, King George Island, since 1988 + +# New Zealand - claims +# Balleny Islands # Scott Island +# +# year-round base +# Scott, Ross Island, since 1957-01, is like Antarctica/McMurdo. +# +# These rules for New Zealand are stolen from the `australasia' file. +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule NZAQ 1974 only - Nov 3 2:00s 1:00 D +Rule NZAQ 1975 1988 - Oct lastSun 2:00s 1:00 D +Rule NZAQ 1989 only - Oct 8 2:00s 1:00 D +Rule NZAQ 1990 max - Oct Sun>=1 2:00s 1:00 D +Rule NZAQ 1975 only - Feb 23 2:00s 0 S +Rule NZAQ 1976 1989 - Mar Sun>=1 2:00s 0 S +Rule NZAQ 1990 max - Mar Sun>=15 2:00s 0 S + +# Norway - territories +# Bouvet (uninhabited) +# +# claims +# Peter I Island (uninhabited) + +# Poland - year-round base +# Arctowski, King George Island, since 1977 + +# Russia - year-round bases +# Bellingshausen, King George Island +# Mirny +# Molodezhnaya +# Novolazarevskaya +# Vostok + +# S Africa - year-round bases +# Marion Island +# Sanae + +# UK +# +# British Antarctic Territories (BAT) claims +# South Orkney Islands +# South Shetland Islands +# +# year-round bases +# Halley, Coates Land, -7535-2619, since 1956-01-06 +# Rothera, Adelaide Island, -6734-6808, since 1976-12-01 + +# Uruguay - year round base +# Artigas, King George Island + +# USA - year-round bases +# +# Palmer, Anvers Island +# +# McMurdo, Ross Island, since 1956 +# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Zone Antarctica/McMurdo 0 - ___ 1956 + 12:00 NZAQ NZ%sT +# +# Amundsen-Scott, South Pole, since 1957-01-23 +# From Paul Eggert (1996-09-03): +# Normally it wouldn't have a separate entry, since it's like the +# larger Antarctica/McMurdo since 1970, but it's too famous to omit. +# +# From Chris Carrier <72157.3334@CompuServe.COM> (1996-06-27): +# Siple, the first commander of the South Pole station, +# stated that he would have liked to have kept GMT at the station, +# but that he found it more convenient to keep GMT+12 +# as supplies for the station were coming from McMurdo Sound, +# which was on GMT+12 because New Zealand was on GMT+12 all year +# at that time (1957). (Source: Siple's book 90 degrees SOUTH.) +# +# From Susan Smith <URL:http://www.cybertours.com/whs/pole10.html> +# (1995-11-13 16:24:56 +1300): We use the same time as McMurdo does. +# And they use the same time as Christchurch, NZ does.... +# One last quirk about South Pole time. +# All the electric clocks are usually wrong. +# Something about the generators running at 60.1hertz or something +# makes all of the clocks run fast. So every couple of days, +# we have to go around and set them back 5 minutes or so. +# Maybe if we let them run fast all of the time, we'd get to leave here sooner!! +# +Link Antarctica/McMurdo Antarctica/South_Pole @@ -1,10 +1,10 @@ -# @(#)asia 7.23 +# @(#)asia 7.24 # 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 # tz@elsie.nci.nih.gov for general use in the future). -# From Paul Eggert <eggert@twinsun.com> (1995-12-19): +# From Paul Eggert <eggert@twinsun.com> (1995-07-24): # # A good source for time zone historical data outside the U.S. is # Thomas G. Shanks, The International Atlas (3rd edition), @@ -25,42 +25,20 @@ # std dst # LMT Local Mean Time # LST Local Star Time (Russian ``mestnoe zvezdnoe vremya'') -# 2:00 EET EET DST Eastern European Time +# 2:00 EET EEST Eastern European Time # 2:00 IST IDT Israel # 3:00 AST ADT Arabia* -# 3:00 BSK BSD Baku (was 4:00)* -# 3:30 IST IDT Iran -# 4:00 AMST AMDT Armenia (was 3:00) (was YSK, YSD)* -# 4:00 TBSK TBSD Tbilisi (was 3:00)* -# 4:00 GST GDT Gulf* -# 4:30 AFT Afghanistan* -# 5:00 ASK ASD Aktau (was SHSK, SHSD)* -# 5:00 ASK ASD Ashkhabad (was 4:00)* -# 5:00 BSK BSD Bishkek (was 6:00) (was FSK, FSD)* -# 5:00 PKT Pakistan* -# 5:00 TSK TSD Tashkent (was 6:00)* -# 5:30 IST IST India -# 5:45 NPT Nepal* -# 6:00 AASK AASD Alma-Ata (was 5:00)* -# 6:00 BGT Bengal, Bangladesh* -# 6:00 DSK DSD Dushanbe (was 5:00)* -# 6:30 BMT Burma* +# 4:00 GST Gulf* +# 5:30 IST India # 7:00 ICT Indochina* -# 7:00 JVT Java* -# 8:00 BNT Borneo, Brunei* -# 8:00 CST CDT China -# 8:00 HKT HKST Hong Kong -# 8:00 PST PDT Philippines* -# 8:00 SGT Singapore -# 8:00 UST UDT Ulan Bator* -# 9:00 JST JDT Japan -# 9:00 KST KDT Korea -# 9:00 MLT Moluccas* -# 9:30 CST Australian Central Standard Time +# 8:00 CST China +# 9:00 JST Japan +# 9:00 KST Korea +# 9:30 CST (Australian) Central Standard Time # # See the `europe' file for Russia and Turkey in Asia. # -# See the `africa' file for Zone naming conventions. +# See the `africa' file for time zone naming and abbreviation conventions. # From Guy Harris: # Incorporates data for Singapore from Robert Elz' asia 1.1, as well as @@ -72,15 +50,15 @@ # These rules for Russia are stolen from the `europe' file. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule RussiaAsia 1981 1984 - Apr 1 0:00 1:00 D -Rule RussiaAsia 1981 1983 - Oct 1 0:00 0 K -Rule RussiaAsia 1984 max - Sep lastSun 2:00s 0 K -Rule RussiaAsia 1985 max - Mar lastSun 2:00s 1:00 D +Rule RussiaAsia 1981 1984 - Apr 1 0:00 1:00 S +Rule RussiaAsia 1981 1983 - Oct 1 0:00 0 - +Rule RussiaAsia 1984 max - Sep lastSun 2:00s 0 - +Rule RussiaAsia 1985 max - Mar lastSun 2:00s 1:00 S # Afghanistan # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Kabul 4:36:48 - LMT 1890 - 4:00 - GST 1945 + 4:00 - AFT 1945 4:30 - AFT # Armenia @@ -90,30 +68,27 @@ Zone Asia/Kabul 4:36:48 - LMT 1890 # <edd@AIC.NET> reported today that Yerevan probably won't use DST this year, # though it did use DST in 1995. We guess Yerevan stayed in sync with Moscow # between 1990 and 1995, but stopped using DST in 1996. -# Der-Danieliantz also asked for a better abbreviation than `YSK' -# after independence. Apparently no abbreviation is in common use; -# use `AMST/AMDT' since `AM' is the ISO country code for Armenia. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Armenia 1992 1995 - Sep lastSun 2:00s 0 S -Rule Armenia 1992 1995 - Mar lastSun 2:00s 1:00 D +Rule Armenia 1991 1995 - Mar lastSun 2:00s 1:00 S +Rule Armenia 1991 1995 - Sep lastSun 2:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2 - 3:00 - YSK 1957 Mar - 4:00 RussiaAsia YS%s 1991 Mar 31 2:00s - 3:00 1:00 YSD 1991 Sep 29 2:00s - 3:00 - AMST 1992 Jan 19 2:00s - 4:00 Armenia AM%sT 1996 - 4:00 - AMST + 3:00 - YERT 1957 Mar # Yerevan Time + 4:00 RussiaAsia YER%sT 1991 Mar 31 2:00s + 3:00 1:00 YERST 1991 Sep 23 # independence + 3:00 Armenia AM%sT 1992 Jan 19 2:00s # Armenia Time + 4:00 Armenia AM%sT # Azerbaijan # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Baku 3:19:24 - LMT 1924 May 2 - 3:00 - BSK 1957 Mar - 4:00 RussiaAsia BS%s 1991 Mar 31 2:00s - 3:00 1:00 BSD 1991 Sep 29 2:00s - 3:00 - BSK + 3:00 - BAKT 1957 Mar # Baku Time + 4:00 RussiaAsia BAK%sT 1991 Mar 31 2:00s + 3:00 1:00 BAKST 1991 Aug 30 # independence + 3:00 RussiaAsia AZ%sT 1992 # Azerbaijan Time + 3:00 - AZT # Shanks has Baku using Russian DST rules after 1991, -# but usno1995 has Azerbaijan with no DST. Go with usno1995. +# but usno1995 has Azerbaijan with no DST. Guess no DST after 1991. # Bahrain # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -124,22 +99,23 @@ Zone Asia/Bahrain 3:22:20 - LMT 1920 # Al-Manamah # Bangladesh # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Dacca 6:01:40 - LMT 1890 - 5:53 - CMT 1941 Oct # Calcutta Mean Time - 6:30 - BMT 1942 May 15 + 5:53:20 - HMT 1941 Oct # Howrah Mean Time? + 6:30 - BURT 1942 May 15 # Burma Time 5:30 - IST 1942 Sep - 6:30 - BMT 1951 Sep 30 - 6:00 - BGT + 6:30 - BURT 1951 Sep 30 + 6:00 - DACT 1971 Mar 26 # Dacca Time + 6:00 - BDT # Bangladesh Time # Bhutan # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Thimbu 5:58:36 - LMT 1947 Aug 15 5:30 - IST 1987 Oct - 6:00 - BGT + 6:00 - BTT # Bhutan Time # British Indian Ocean Territory # From Whitman: # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Indian/Chagos 5:00 - PKT +Zone Indian/Chagos 5:00 - IOT # BIOT Time # Brunei # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -150,15 +126,15 @@ Zone Asia/Brunei 7:39:40 - LMT 1926 Mar # Bandar Seri Begawan # Burma / Myanmar # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Rangoon 6:24:40 - LMT 1880 # or Yangon - 6:25 - RMT 1920 - 6:30 - BMT 1942 May + 6:24:36 - RMT 1920 # Rangoon Mean Time? + 6:30 - BURT 1942 May # Burma Time 9:00 - JST 1945 May 3 - 6:30 - BMT + 6:30 - MMT # Myanmar Time # Cambodia # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Phnom_Penh 6:59:40 - LMT 1906 Jun 9 - 7:06 - SMT 1911 Mar 11 0:01 # Saigon MT + 7:06:20 - SMT 1911 Mar 11 0:01 # Saigon MT? 7:00 - ICT 1912 May 8:00 - ICT 1931 May 7:00 - ICT @@ -187,8 +163,7 @@ Zone Asia/Phnom_Penh 6:59:40 - LMT 1906 Jun 9 # CHINA 9 H AHEAD OF UTC APR 17 - SEP 10 # From Paul Eggert <eggert@twinsun.com> (1995-12-19): -# Shanks writes that China switched from the Chinese calendar on 1912 Feb 12. -# He also writes that China has had a single time zone since 1980 May 1, +# Shanks writes that China has had a single time zone since 1980 May 1, # observing summer DST from 1986 through 1991; this contradicts Devine's # note about Time magazine, though apparently _something_ happened in 1986. # Go with Shanks for now. I made up names for the other pre-1980 time zones. @@ -204,23 +179,23 @@ Rule PRC 1986 1991 - Sep Sun>=11 0:00 0 S Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Harbin 8:26:44 - LMT 1928 - 8:30 - MAT 1932 Mar # Manchuria + 8:30 - HART 1932 Mar # Harbin Time 8:00 - CST 1940 - 9:00 - KST 1966 May - 8:30 - MAT 1980 May + 9:00 - HART 1966 May + 8:30 - HART 1980 May 8:00 PRC C%sT Zone Asia/Shanghai 8:05:52 - LMT 1928 8:00 Shang C%sT 1949 8:00 PRC C%sT Zone Asia/Chungking 7:06:20 - LMT 1928 - 7:00 - ICT 1980 May + 7:00 - CHUT 1980 May # Chungking Time 8:00 PRC C%sT Zone Asia/Urumqi 5:50:20 - LMT 1928 - 6:00 - URT 1980 May # Urumqi + 6:00 - URUT 1980 May # Urumqi Time 8:00 PRC C%sT Zone Asia/Kashgar 5:03:56 - LMT 1928 - 5:30 - ETT 1940 # Eastern Turkestan - 5:00 - ETT 1980 May + 5:30 - KAST 1940 # Kashgar Time + 5:00 - KAST 1980 May 8:00 PRC C%sT ############################################################################### @@ -263,45 +238,47 @@ Rule HK 1979 1980 - May Sun>=8 3:30 1:00 S Rule HK 1979 1980 - Oct Sun>=16 3:30 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Hong_Kong 7:36:36 - LMT 1904 Oct 30 - 8:00 HK HK%sT + 8:00 HK HK%sT 1997 Jul 1 # return to China + 8:00 PRC C%sT # Macao # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Macao 1961 1962 - Mar Sun>=16 3:30 1:00 D -Rule Macao 1961 1964 - Nov Sun>=1 3:30 0 S -Rule Macao 1963 only - Mar Sun>=16 0:00 1:00 D -Rule Macao 1964 only - Mar Sun>=16 3:30 1:00 D -Rule Macao 1965 only - Mar Sun>=16 0:00 1:00 D -Rule Macao 1965 only - Oct 31 0:00 0 S -Rule Macao 1966 1971 - Apr Sun>=16 3:30 1:00 D -Rule Macao 1966 1971 - Oct Sun>=16 3:30 0 S -Rule Macao 1972 1974 - Apr Sun>=15 0:00 1:00 D -Rule Macao 1972 1973 - Oct Sun>=15 0:00 0 S -Rule Macao 1974 1977 - Oct Sun>=15 3:30 0 S -Rule Macao 1975 1977 - Apr Sun>=15 3:30 1:00 D -Rule Macao 1978 1980 - Apr Sun>=15 0:00 1:00 D -Rule Macao 1978 1980 - Oct Sun>=15 0:00 0 S +Rule Macao 1961 1962 - Mar Sun>=16 3:30 1:00 S +Rule Macao 1961 1964 - Nov Sun>=1 3:30 0 - +Rule Macao 1963 only - Mar Sun>=16 0:00 1:00 S +Rule Macao 1964 only - Mar Sun>=16 3:30 1:00 S +Rule Macao 1965 only - Mar Sun>=16 0:00 1:00 S +Rule Macao 1965 only - Oct 31 0:00 0 - +Rule Macao 1966 1971 - Apr Sun>=16 3:30 1:00 S +Rule Macao 1966 1971 - Oct Sun>=16 3:30 0 - +Rule Macao 1972 1974 - Apr Sun>=15 0:00 1:00 S +Rule Macao 1972 1973 - Oct Sun>=15 0:00 0 - +Rule Macao 1974 1977 - Oct Sun>=15 3:30 0 - +Rule Macao 1975 1977 - Apr Sun>=15 3:30 1:00 S +Rule Macao 1978 1980 - Apr Sun>=15 0:00 1:00 S +Rule Macao 1978 1980 - Oct Sun>=15 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Macao 7:34:20 - LMT 1912 - 8:00 Macao C%sT + 8:00 Macao MO%sT 1999 Dec 20 # return to China + 8:00 PRC C%sT ############################################################################### # Cyprus # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Cyprus 1975 only - Apr 13 0:00 1:00 " DST" +Rule Cyprus 1975 only - Apr 13 0:00 1:00 S Rule Cyprus 1975 only - Oct 12 0:00 0 - -Rule Cyprus 1976 only - May 15 0:00 1:00 " DST" +Rule Cyprus 1976 only - May 15 0:00 1:00 S Rule Cyprus 1976 only - Oct 11 0:00 0 - -Rule Cyprus 1977 1980 - Apr Sun>=1 0:00 1:00 " DST" +Rule Cyprus 1977 1980 - Apr Sun>=1 0:00 1:00 S Rule Cyprus 1977 only - Sep 25 0:00 0 - Rule Cyprus 1978 only - Oct 2 0:00 0 - Rule Cyprus 1979 max - Sep lastSun 0:00 0 - -Rule Cyprus 1981 max - Mar lastSun 0:00 1:00 " DST" +Rule Cyprus 1981 max - Mar lastSun 0:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Nicosia 2:13:28 - LMT 1921 Nov 14 - 2:00 Cyprus EET%s + 2:00 Cyprus EE%sT # Georgia # From Paul Eggert <eggert@twinsun.com> (1994-11-19): @@ -316,18 +293,18 @@ Zone Asia/Nicosia 2:13:28 - LMT 1921 Nov 14 # Most likely we're still missing some rule changes between 1991 and 1994. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Tbilisi 2:59:16 - LMT 1880 - 2:59 - LST 1924 May 2 - 3:00 - TBSK 1957 Mar - 4:00 RussiaAsia TBS%s 1991 Mar 31 2:00s - 3:00 1:00 TBSD 1991 Sep 29 2:00s - 3:00 RussiaAsia TBS%s 1994 Sep 25 2:00s - 4:00 - TBSK + 2:59:16 - TBMT 1924 May 2 # Tbilisi Mean Time + 3:00 - TBIT 1957 Mar # Tbilisi Time + 4:00 RussiaAsia TBI%sT 1991 Mar 31 2:00s + 3:00 1:00 TBIST 1991 Apr 9 # independence + 3:00 RussiaAsia GE%sT 1994 Sep 25 2:00s # Georgia Time + 4:00 - GET # India # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Calcutta 5:53:28 - LMT 1880 - 5:53 - CMT 1941 Oct # Calcutta Mean Time - 6:30 - BMT 1942 May 15 + 5:53:20 - HMT 1941 Oct # Howrah Mean Time? + 6:30 - BURT 1942 May 15 # Burma Time 5:30 - IST 1942 Sep 5:30 1:00 IST 1945 Oct 15 5:30 - IST @@ -339,36 +316,36 @@ Zone Asia/Calcutta 5:53:28 - LMT 1880 # Indonesia # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Jakarta 7:07:12 - LMT 1867 Aug 10 - 7:07 - JMT 1924 Jan 1 0:13 - 7:20 - JVT 1932 Nov - 7:30 - JVT 1942 Mar 23 + 7:07:12 - JMT 1924 Jan 1 0:13 # Jakarta MT + 7:20 - JAVT 1932 Nov # Java Time + 7:30 - JAVT 1942 Mar 23 9:00 - JST 1945 Aug - 7:30 - JVT 1948 May - 8:00 - JVT 1950 May - 7:30 - JVT 1964 - 7:00 - JVT + 7:30 - JAVT 1948 May + 8:00 - JAVT 1950 May + 7:30 - JAVT 1964 + 7:00 - JAVT Zone Asia/Ujung_Pandang 7:57:36 - LMT 1920 - 7:58 - MMT 1932 Nov # Macassar Mean Time - 8:00 - BNT 1942 Feb 9 + 7:57:36 - MMT 1932 Nov # Macassar MT + 8:00 - BORT 1942 Feb 9 # Borneo Time 9:00 - JST 1945 Aug - 8:00 - BNT + 8:00 - BORT Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov - 9:00 - MLT 1944 + 9:00 - JAYT 1944 # Jayapura Time 9:30 - CST 1964 - 9:00 - MLT + 9:00 - JAYT # Iran # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Iran 1978 1980 - Mar 21 0:00 1:00 D -Rule Iran 1978 only - Oct 21 0:00 0 S -Rule Iran 1979 only - Sep 19 0:00 0 S -Rule Iran 1980 only - Sep 23 0:00 0 S +Rule Iran 1978 1980 - Mar 21 0:00 1:00 S +Rule Iran 1978 only - Oct 21 0:00 0 - +Rule Iran 1979 only - Sep 19 0:00 0 - +Rule Iran 1980 only - Sep 23 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Tehran 3:25:44 - LMT 1916 - 3:26 - TMT 1946 - 3:30 - IST 1977 Nov - 4:00 Iran G%sT 1979 - 3:30 Iran I%sT + 3:25:44 - TMT 1946 # Tehran Mean Time + 3:30 - IRT 1977 Nov + 4:00 Iran IR%sT 1979 + 3:30 Iran IR%sT # Iraq # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -380,7 +357,7 @@ Rule Iraq 1985 max - Sep lastSun 1:00s 0 S Rule Iraq 1986 max - Mar lastSun 1:00s 1:00 D # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Baghdad 2:57:40 - LMT 1890 - 2:58 - BMT 1918 # Baghdad Mean Time + 2:57:36 - BMT 1918 # Baghdad Mean Time? 3:00 - AST 1982 May 3:00 Iraq A%sT @@ -440,12 +417,6 @@ Rule Zion 1987 only - Apr 15 0:00 1:00 D Rule Zion 1987 only - Sep 13 0:00 0 S Rule Zion 1988 only - Apr 9 0:00 1:00 D Rule Zion 1988 only - Sep 3 0:00 0 S -#Rule Zion 1989 only - Apr 29 0:00 1:00 D -#Rule Zion 1989 only - Sep 2 0:00 0 S -#Rule Zion 1990 only - Mar 25 0:00 1:00 D -#Rule Zion 1990 only - Aug 26 0:00 0 S -#Rule Zion 1991 only - Mar 10 0:00 1:00 D -#Rule Zion 1991 only - Sep 1 0:00 0 S # From Ephraim Silverberg (1996-01-02): # @@ -466,25 +437,25 @@ Rule Zion 1988 only - Sep 3 0:00 0 S # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Zion 1989 only - Apr 30 0:00 1:00 D -Rule Zion 1989 only - Sep 3 0:00 0:00 S +Rule Zion 1989 only - Sep 3 0:00 0 S Rule Zion 1990 only - Mar 25 0:00 1:00 D -Rule Zion 1990 only - Aug 26 0:00 0:00 S +Rule Zion 1990 only - Aug 26 0:00 0 S Rule Zion 1991 only - Mar 24 0:00 1:00 D -Rule Zion 1991 only - Sep 1 0:00 0:00 S +Rule Zion 1991 only - Sep 1 0:00 0 S Rule Zion 1992 only - Mar 29 0:00 1:00 D -Rule Zion 1992 only - Sep 6 0:00 0:00 S +Rule Zion 1992 only - Sep 6 0:00 0 S Rule Zion 1993 only - Apr 2 0:00 1:00 D -Rule Zion 1993 only - Sep 5 0:00 0:00 S +Rule Zion 1993 only - Sep 5 0:00 0 S # The dates for 1994-1995 were obtained from Office of the Spokeswoman for the # Ministry of Interior, Jerusalem, Israel. The spokeswoman can be reached by # calling the switchboard at 972-2-701411 and asking for the spokeswoman. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Zion 1994 only - Apr 1 0:00 1:00 D -Rule Zion 1994 only - Aug 28 0:00 0:00 S -Rule Zion 1995 only - Mar 31 0:00 1:00 D -Rule Zion 1995 only - Sep 3 0:00 0:00 S +Rule Zion 1994 only - Apr 1 0:00 1:00 D +Rule Zion 1994 only - Aug 28 0:00 0 S +Rule Zion 1995 only - Mar 31 0:00 1:00 D +Rule Zion 1995 only - Sep 3 0:00 0 S # The dates for 1996-1998 were also obtained from Office of the Spokeswoman # for the Ministry of Interior, Jerusalem, Israel. The official announcement @@ -504,12 +475,12 @@ Rule Zion 1995 only - Sep 3 0:00 0:00 S # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Zion 1996 1998 - Mar Fri>=14 0:00 1:00 D -Rule Zion 1996 only - Sep 16 0:00 0:00 S -Rule Zion 1997 1998 - Oct Sun>=14 0:00 0:00 S +Rule Zion 1996 only - Sep 16 0:00 0 S +Rule Zion 1997 1998 - Oct Sun>=14 0:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Jerusalem 2:20:56 - LMT 1880 - 2:21 - JMT 1918 + 2:20:40 - JMT 1918 # Jerusalem Mean Time? 2:00 Zion I%sT @@ -531,29 +502,12 @@ Zone Asia/Jerusalem 2:20:56 - LMT 1880 #Rule Japan 1950 1951 - May Sun>=1 2:00 1:00 D # but the only locations using it were US military bases. # We go with Shanks and omit daylight saving in those years for Asia/Tokyo. -# -# The same news article also reports that Japan is likely to go on DST in 1996 -# as follows, where I've guessed the AT and LETTER/S columns: -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -#Rule Japan 1996 max - Apr Sun>=1 2:00 1:00 D -#Rule Japan 1996 max - Oct lastSun 2:00 0 S -# From Shanks (1991): -# Japan switched from the Japanese calendar on 1893 Jan 1. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Tokyo 9:19:04 - LMT 1896 9:00 - JST -# If Japan adopts DST in 1996, replace the above line with the following lines: -# 9:00 - JST 1996 -# 9:00 Japan J%sT -# and uncomment the two `Rule' lines commented out above. - -# From Paul Eggert <eggert@twinsun.com> (1995-12-19): -# Shanks says that the far southern Ryukyu Is (Nansei-Shoto) are 8:00, -# but we haven't confirmed this. -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -#Zone Asia/Ishigaki 8:16:36 - LMT 1896 -# 8:00 - CST +Zone Asia/Ishigaki 8:16:36 - LMT 1896 + 8:00 - CST # There is no information for Marcus. # Other Japanese possessions are probably like Asia/Tokyo. @@ -562,26 +516,26 @@ Zone Asia/Tokyo 9:19:04 - LMT 1896 # Most likely Shanks is merely guessing dates from 1992 on. # From Shanks (1991): # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Jordan 1973 only - Jun 6 0:00 1:00 " DST" +Rule Jordan 1973 only - Jun 6 0:00 1:00 S Rule Jordan 1973 1975 - Oct 1 0:00 0 - -Rule Jordan 1974 1977 - May 1 0:00 1:00 " DST" +Rule Jordan 1974 1977 - May 1 0:00 1:00 S Rule Jordan 1976 only - Nov 1 0:00 0 - Rule Jordan 1977 only - Oct 1 0:00 0 - -Rule Jordan 1978 only - Apr 30 0:00 1:00 " DST" +Rule Jordan 1978 only - Apr 30 0:00 1:00 S Rule Jordan 1978 only - Sep 30 0:00 0 - -Rule Jordan 1985 only - Apr 1 0:00 1:00 " DST" +Rule Jordan 1985 only - Apr 1 0:00 1:00 S Rule Jordan 1985 only - Oct 1 0:00 0 - -Rule Jordan 1986 1988 - Apr Fri>=1 0:00 1:00 " DST" +Rule Jordan 1986 1988 - Apr Fri>=1 0:00 1:00 S Rule Jordan 1986 1990 - Oct Fri>=1 0:00 0 - -Rule Jordan 1989 only - May 8 0:00 1:00 " DST" -Rule Jordan 1990 only - Apr 27 0:00 1:00 " DST" -Rule Jordan 1991 only - Apr 19 0:00 1:00 " DST" +Rule Jordan 1989 only - May 8 0:00 1:00 S +Rule Jordan 1990 only - Apr 27 0:00 1:00 S +Rule Jordan 1991 only - Apr 19 0:00 1:00 S Rule Jordan 1991 only - Sep 27 0:00 0 - -Rule Jordan 1992 max - Apr Fri>=1 0:00 1:00 " DST" +Rule Jordan 1992 max - Apr Fri>=1 0:00 1:00 S Rule Jordan 1992 max - Oct Fri>=1 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Amman 2:23:44 - LMT 1931 - 2:00 Jordan EET%s + 2:00 Jordan EE%sT # Kazakhstan # From Paul Eggert (1996-04-19): @@ -590,25 +544,25 @@ Zone Asia/Amman 2:23:44 - LMT 1931 # in western Kazakhstan. Follow Shanks before 1991, Evtichov afterwards. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Alma-Ata 5:07:48 - LMT 1924 May 2 # or Almaty - 5:00 - AASK 1957 Mar - 6:00 RussiaAsia AAS%s 1991 Mar 31 2:00s - 5:00 1:00 AASD 1991 Sep 29 2:00s - 5:00 - AASK 1992 Jan 19 2:00s - 6:00 RussiaAsia AAS%s + 5:00 - ALMT 1957 Mar # Alma-Ata Time + 6:00 RussiaAsia ALM%sT 1991 Mar 31 2:00s + 5:00 1:00 ALMST 1991 Sep 29 2:00s + 5:00 - ALMT 1992 Jan 19 2:00s + 6:00 RussiaAsia ALM%sT Zone Asia/Aktau 3:21:04 - LMT 1924 May 2 # or Aqtau - 4:00 - SHSK 1957 Mar # Fort Shevchenko - 5:00 RussiaAsia SHS%s 1991 Mar 31 2:00s - 4:00 1:00 ASD 1991 Sep 29 2:00s - 4:00 - ASK 1992 Jan 19 2:00s - 5:00 RussiaAsia AS%s + 4:00 - SHET 1957 Mar # Fort Shevchenko Time + 5:00 RussiaAsia SHE%sT 1991 Mar 31 2:00s + 4:00 1:00 AKTST 1991 Sep 29 2:00s + 4:00 - AKTT 1992 Jan 19 2:00s # Aktau Time + 5:00 RussiaAsia AKT%sT # Kirgizstan # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2 - 5:00 - FSK 1957 Mar # Frunze - 6:00 RussiaAsia FS%s 1991 Mar 31 2:00s - 5:00 1:00 FSD 1991 Sep 29 2:00s - 5:00 RussiaAsia BS%s + 5:00 - FRUT 1957 Mar # Frunze Time + 6:00 RussiaAsia FRU%sT 1991 Mar 31 2:00s + 5:00 1:00 FRUST 1991 Aug 31 # independence + 5:00 RussiaAsia KG%sT # Kirgizstan Time ############################################################################### @@ -653,81 +607,90 @@ Zone Asia/Kuwait 3:11:56 - LMT 1950 # Laos # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Vientiane 6:50:24 - LMT 1906 Jun 9 - 7:06 - SMT 1911 Mar 11 0:01 # Saigon MT + 7:06:20 - SMT 1911 Mar 11 0:01 # Saigon MT? 7:00 - ICT 1912 May 8:00 - ICT 1931 May 7:00 - ICT # Lebanon # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Lebanon 1920 only - Mar 28 0:00 1:00 " DST" +Rule Lebanon 1920 only - Mar 28 0:00 1:00 S Rule Lebanon 1920 only - Oct 25 0:00 0 - -Rule Lebanon 1921 only - Apr 3 0:00 1:00 " DST" +Rule Lebanon 1921 only - Apr 3 0:00 1:00 S Rule Lebanon 1921 only - Oct 3 0:00 0 - -Rule Lebanon 1922 only - Mar 26 0:00 1:00 " DST" +Rule Lebanon 1922 only - Mar 26 0:00 1:00 S Rule Lebanon 1922 only - Oct 8 0:00 0 - -Rule Lebanon 1923 only - Apr 22 0:00 1:00 " DST" +Rule Lebanon 1923 only - Apr 22 0:00 1:00 S Rule Lebanon 1923 only - Sep 16 0:00 0 - -Rule Lebanon 1957 1961 - May 1 0:00 1:00 " DST" +Rule Lebanon 1957 1961 - May 1 0:00 1:00 S Rule Lebanon 1957 1961 - Oct 1 0:00 0 - -Rule Lebanon 1972 only - Jun 22 0:00 1:00 " DST" +Rule Lebanon 1972 only - Jun 22 0:00 1:00 S Rule Lebanon 1972 1977 - Oct 1 0:00 0 - -Rule Lebanon 1973 1977 - May 1 0:00 1:00 " DST" -Rule Lebanon 1978 only - Apr 30 0:00 1:00 " DST" +Rule Lebanon 1973 1977 - May 1 0:00 1:00 S +Rule Lebanon 1978 only - Apr 30 0:00 1:00 S Rule Lebanon 1978 only - Sep 30 0:00 0 - -Rule Lebanon 1984 1987 - May 1 0:00 1:00 " DST" +Rule Lebanon 1984 1987 - May 1 0:00 1:00 S Rule Lebanon 1984 max - Oct 16 0:00 0 - -Rule Lebanon 1988 only - Jun 1 0:00 1:00 " DST" -Rule Lebanon 1989 only - May 10 0:00 1:00 " DST" -Rule Lebanon 1990 max - May 1 0:00 1:00 " DST" +Rule Lebanon 1988 only - Jun 1 0:00 1:00 S +Rule Lebanon 1989 only - May 10 0:00 1:00 S +Rule Lebanon 1990 max - May 1 0:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Beirut 2:22:00 - LMT 1880 - 2:00 Lebanon EET%s + 2:00 Lebanon EE%sT # Malaysia +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 TS +Rule NBorneo 1935 1941 - Dec 14 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Kuala_Lumpur 6:46:48 - LMT 1880 - 6:55 - SMT 1905 Jun - 7:00 - SGT 1933 - 7:20 - SGT 1942 Feb 15 + 6:55:24 - SMT 1905 Jun # Singapore Mean Time + 7:00 - MALT 1933 # Malaya Time + 7:20 - MALT 1942 Feb 15 9:00 - JST 1945 Sep 2 - 7:20 - SGT 1950 - 7:30 - SGT 1982 May - 8:00 - SGT + 7:20 - MALT 1950 + 7:30 - MALT 1982 May + 8:00 - MYT # Malaysia Time +Zone Asia/Kuching 7:21:20 - LMT 1926 Mar + 7:30 - BORT 1933 # Borneo Time + 8:00 NBorneo BOR%sT 1942 + 9:00 - JST 1945 Sep 2 + 8:00 - BORT 1982 May + 8:00 - MYT # Maldives # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Indian/Maldives 4:54:00 - LMT 1880 # Male - 4:54 - MMT 1960 - 5:00 - PKT +Zone Indian/Maldives 4:54:00 - LMT 1880 # Male + 4:54:00 - MMT 1960 # Male Mean Time + 5:00 - MVT # Maldives Time # Mongolia -# Shanks says that Mongolia has three time zones, -# but usno1995 and http://www.odci.gov/cia/publications/95fact/802389h.gif +# Shanks says that Mongolia has three time zones, but usno1995 and +# <URL:http://www.odci.gov/cia/publications/95fact/802389h.gif> (1995) # both say that it has just one. # Let's comment out the western and eastern Mongolian time zones # till we know what their principal towns are. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Mongol 1981 1984 - Apr 1 0:00 1:00 T -Rule Mongol 1981 1984 - Oct 1 0:00 0 S -Rule Mongol 1985 max - Mar lastSun 2:00 1:00 T -Rule Mongol 1985 max - Sep lastSun 3:00 0 S +Rule Mongol 1981 1984 - Apr 1 0:00 1:00 S +Rule Mongol 1981 1984 - Oct 1 0:00 0 - +Rule Mongol 1985 max - Mar lastSun 2:00 1:00 S +Rule Mongol 1985 max - Sep lastSun 3:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] #Zone Asia/Dariv 6:14:32 - LMT 1905 Aug -# 6:00 - DST 1978 -# 7:00 Mongol D%sT +# 6:00 - DART 1978 # Dariv Time +# 7:00 Mongol DAR%sT Zone Asia/Ulan_Bator 7:07:32 - LMT 1905 Aug - 7:00 - UST 1978 - 8:00 Mongol U%sT + 7:00 - ULAT 1978 # Ulan Bator Time + 8:00 Mongol ULA%sT #Zone Asia/Baruun-Urt 7:33:00 - LMT 1905 Aug -# 8:00 - BST 1978 -# 9:00 Mongol B%sT +# 8:00 - BART 1978 # Baruun-Urt Time +# 9:00 Mongol BAR%sT # Nepal # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Katmandu 5:41:16 - LMT 1920 5:30 - IST 1986 - 5:45 - NPT + 5:45 - NPT # Nepal Time # Oman # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -740,23 +703,23 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 5:30 - IST 1942 Sep 5:30 1:00 IST 1945 Oct 15 5:30 - IST 1951 Sep 30 - 5:00 - PKT + 5:00 - KART 1971 Mar 26 # Karachi Time + 5:00 - PKT # Pakistan Time # Palestine # These rules for Egypt are stolen from the `africa' file. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule EgyptAsia 1957 only - May 10 0:00 1:00 " DST" +Rule EgyptAsia 1957 only - May 10 0:00 1:00 S Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 - -Rule EgyptAsia 1958 only - May 1 0:00 1:00 " DST" -Rule EgyptAsia 1959 1981 - May 1 1:00 1:00 " DST" +Rule EgyptAsia 1958 only - May 1 0:00 1:00 S +Rule EgyptAsia 1959 1981 - May 1 1:00 1:00 S Rule EgyptAsia 1959 1965 - Sep 30 3:00 0 - Rule EgyptAsia 1966 max - Oct 1 3:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Gaza 2:17:52 - LMT 1900 Oct 2:00 - EET 1957 May 10 - 2:00 EgyptAsia EET%s 1967 Jun 30 + 2:00 EgyptAsia EE%sT 1967 Jun 30 2:00 Zion I%sT -# This will undoubtedly change soon. # Paracel Is # no information @@ -765,18 +728,18 @@ Zone Asia/Gaza 2:17:52 - LMT 1900 Oct # Howse writes (p 162) that until 1844 the Philippines kept American date. # The rest of this data is from Shanks. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Phil 1936 only - Nov 1 0:00 1:00 D -Rule Phil 1937 only - Feb 1 0:00 0 S -Rule Phil 1954 only - Apr 12 0:00 1:00 D -Rule Phil 1954 only - Jul 1 0:00 0 S -Rule Phil 1978 only - Mar 22 0:00 1:00 D -Rule Phil 1978 only - Sep 21 0:00 0 S +Rule Phil 1936 only - Nov 1 0:00 1:00 S +Rule Phil 1937 only - Feb 1 0:00 0 - +Rule Phil 1954 only - Apr 12 0:00 1:00 S +Rule Phil 1954 only - Jul 1 0:00 0 - +Rule Phil 1978 only - Mar 22 0:00 1:00 S +Rule Phil 1978 only - Sep 21 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Manila -15:56:00 - LMT 1844 8:04:00 - LMT 1899 May 11 - 8:00 Phil P%sT 1942 May + 8:00 Phil PH%sT 1942 May 9:00 - JST 1944 Nov - 8:00 Phil P%sT + 8:00 Phil PH%sT # Qatar # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -792,78 +755,93 @@ Zone Asia/Riyadh 3:06:52 - LMT 1950 # Singapore # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Singapore 6:55:24 - LMT 1880 - 6:55 - SMT 1905 Jun - 7:00 - SGT 1933 - 7:20 - SGT 1942 Feb 15 + 6:55:24 - SMT 1905 Jun # Singapore Mean Time + 7:00 - MALT 1933 # Malaya Time + 7:20 - MALT 1942 Feb 15 9:00 - JST 1945 Sep 2 - 7:20 - SGT 1950 - 7:30 - SGT 1982 May + 7:20 - MALT 1950 + 7:30 - MALT 1965 Aug 9 # independence + 7:30 - SGT 1982 May # Singapore Time 8:00 - SGT # Spratly Is # no information # Sri Lanka +# From Paul Eggert (1996-09-03): +# <URL:http://www.virtual-pc.com/lankaweb/news/items/240596-2.html> (1996-05-24) +# reported ``the country's standard time will be put forward by one hour at +# midnight Friday (1830 GMT) `in the light of the present power crisis'.'' +# Transitions before 1996 are from Shanks (1991). + # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Colombo 5:19:24 - LMT 1880 - 5:20 - JMT 1906 + 5:20 - CEYT 1906 # Ceylon Time 5:30 - IST 1942 Jan 5 5:30 0:30 IHST 1942 Sep 5:30 1:00 IST 1945 Oct 16 2:00 - 5:30 - IST + 5:30 - IST 1996 May 25 0:00 + 6:30 - LKT # Sri Lanka Time # Syria # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Syria 1920 1923 - Apr Sun>=15 2:00 1:00 " DST" +Rule Syria 1920 1923 - Apr Sun>=15 2:00 1:00 S Rule Syria 1920 1923 - Oct Sun>=1 2:00 0 - -Rule Syria 1962 only - Apr 29 2:00 1:00 " DST" +Rule Syria 1962 only - Apr 29 2:00 1:00 S Rule Syria 1962 only - Oct 1 2:00 0 - -Rule Syria 1963 1965 - May 1 2:00 1:00 " DST" +Rule Syria 1963 1965 - May 1 2:00 1:00 S Rule Syria 1963 only - Sep 30 2:00 0 - Rule Syria 1964 only - Oct 1 2:00 0 - Rule Syria 1965 only - Sep 30 2:00 0 - -Rule Syria 1966 only - Apr 24 2:00 1:00 " DST" +Rule Syria 1966 only - Apr 24 2:00 1:00 S Rule Syria 1966 1976 - Oct 1 2:00 0 - -Rule Syria 1967 1978 - May 1 2:00 1:00 " DST" +Rule Syria 1967 1978 - May 1 2:00 1:00 S Rule Syria 1977 1978 - Sep 1 2:00 0 - -Rule Syria 1983 1984 - Apr 9 2:00 1:00 " DST" +Rule Syria 1983 1984 - Apr 9 2:00 1:00 S Rule Syria 1983 1984 - Oct 1 2:00 0 - -Rule Syria 1986 only - Feb 16 2:00 1:00 " DST" +Rule Syria 1986 only - Feb 16 2:00 1:00 S Rule Syria 1986 only - Oct 9 2:00 0 - -Rule Syria 1987 only - Mar 1 2:00 1:00 " DST" +Rule Syria 1987 only - Mar 1 2:00 1:00 S Rule Syria 1987 1988 - Oct 31 2:00 0 - -Rule Syria 1988 only - Mar 15 2:00 1:00 " DST" -Rule Syria 1989 only - Mar 31 2:00 1:00 " DST" +Rule Syria 1988 only - Mar 15 2:00 1:00 S +Rule Syria 1989 only - Mar 31 2:00 1:00 S Rule Syria 1989 only - Oct 1 2:00 0 - -Rule Syria 1990 max - Apr 1 2:00 1:00 " DST" +Rule Syria 1990 max - Apr 1 2:00 1:00 S Rule Syria 1990 max - Sep 30 2:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Damascus 2:25:12 - LMT 1920 - 2:00 Syria EET%s + 2:00 Syria EE%sT # Tajikistan # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 - 5:00 - DSK 1957 Mar - 6:00 RussiaAsia DS%s 1991 - 6:00 - DSK -# Shanks has Dushanbe at 5:00 (6:00 summer) after 1991 Sep 29 3:00, -# but usno1995 has it at 6:00. Go with usno1995. + 5:00 - DUST 1957 Mar # Dushanbe Time + 6:00 RussiaAsia DUS%sT 1991 Mar 31 2:00s + 5:00 1:00 DUSST 1991 Sep 9 # independence + 5:00 RussiaAsia TJ%sT 1992 + 5:00 - TJT # Tajikistan Time +# Shanks has Dushanbe at 5:00 (6:00 summer) after 1991, +# but a cable from the American Embassy at Dushanbe +# <URL:http://www.itaiep.doc.gov/bisnis/cables/960703ti.html> (1996-07-02) +# says that Tajikistan is at 5:00. Guess no DST after 1991. # Thailand # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Bangkok 6:42:04 - LMT 1880 - 6:42 - BMT 1920 Apr + 6:42:04 - BMT 1920 Apr # Bangkok Mean Time 7:00 - ICT # Turkmenistan # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Asia/Ashkhabad 3:53:32 - LMT 1924 May 2 - 4:00 - ASK 1957 Mar - 5:00 RussiaAsia AS%s 1991 - 5:00 - ASK -# Shanks has Ashkhabad at 4:00 (5:00 summer) after 1991 Sep 20 3:00, -# but usno has it at 5:00. Go with usno1995. +Zone Asia/Ashkhabad 3:53:32 - LMT 1924 May 2 # or Ashgabat + 4:00 - ASHT 1957 Mar # Ashkhabad Time + 5:00 RussiaAsia ASH%sT 1991 Mar 31 2:00s + 4:00 1:00 ASHST 1991 Oct 27 # independence + 4:00 RussiaAsia TM%sT 1992 # Turkmenistan Time + 4:00 - TMT +# Shanks has Ashkhabad at 4:00 (5:00 summer) after 1991, but +# DHL <URL:http://www.dhl.com/dhlinfo/country/turkmeni.html> (1996-07-26) +# reports 4:00. Guess no DST after 1991. # United Arab Emirates # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -873,14 +851,16 @@ Zone Asia/Dubai 3:41:12 - LMT 1920 # Uzbekistan # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Tashkent 4:37:12 - LMT 1924 May 2 - 5:00 - TSK 1957 Mar - 6:00 RussiaAsia TS%s 1991 Mar 31 2:00s - 5:00 1:00 TSD 1991 Sep 29 2:00s - 5:00 - TSK + 5:00 - TAST 1957 Mar # Tashkent Time + 6:00 RussiaAsia TAS%sT 1991 Mar 31 2:00s + 5:00 1:00 TASST 1991 Sep 29 2:00s + 5:00 - UZT # Uzbekistan Time # Shanks has Tashkent using DST after 1991, but usno1995 says they don't. -# Go with usno1995. -# http://www.odci.gov/cia/publications/95fact/802389h.gif claims that -# Uzbekistan has two time zones, but we lack data about this. +# Guess no DST after 1991. +# <URL:http://www.odci.gov/cia/publications/95fact/802389h.gif> (1995) +# says that Uzbekistan has two time zones, but a cable +# <URL:http://www.itaiep.doc.gov/bisnis/cables/960510uz.html> (1996-05-10) +# from the American Embassy in Tashkent implies that they have just one. # Vietnam # From Paul Eggert <eggert@twinsun.com> (November 18, 1993): @@ -889,7 +869,7 @@ Zone Asia/Tashkent 4:37:12 - LMT 1924 May 2 # From Shanks (1991): # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Saigon 7:06:40 - LMT 1906 Jun 9 - 7:06 - SMT 1911 Mar 11 0:01 # Saigon MT + 7:06:20 - SMT 1911 Mar 11 0:01 # Saigon MT? 7:00 - ICT 1912 May 8:00 - ICT 1931 May 7:00 - ICT diff --git a/time/australasia b/time/australasia index 960f9e3..e65546f 100644 --- a/time/australasia +++ b/time/australasia @@ -1,4 +1,4 @@ -# @(#)australasia 7.27 +# @(#)australasia 7.28 # This file also includes Pacific islands. # Notes are at the end of this file @@ -143,7 +143,7 @@ Zone Australia/Lord_Howe 10:36:20 - LMT 1895 Feb # Australian miscellany # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Indian/Christmas 7:02:52 - LMT 1895 Feb - 7:00 - JVT + 7:00 - CXT # Christmas Island Time # # Ashmore Is, Cartier # no indigenous inhabitants; only seasonal caretakers @@ -159,32 +159,32 @@ Zone Indian/Christmas 7:02:52 - LMT 1895 Feb # Cook Is # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Cook 1978 only - Nov 12 0:00 0:30 HD -Rule Cook 1979 max - Mar Sun>=1 0:00 0 H -Rule Cook 1979 max - Oct lastSun 0:00 0:30 HD +Rule Cook 1978 only - Nov 12 0:00 0:30 HS +Rule Cook 1979 max - Mar Sun>=1 0:00 0 - +Rule Cook 1979 max - Oct lastSun 0:00 0:30 HS # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Rarotonga -10:39:04 - LMT 1901 # Avarua - -10:30 - CIST 1978 Nov 12 # Cook Is ST - -10:00 Cook T%sT + -10:30 - CKT 1978 Nov 12 # Cook Is Time + -10:00 Cook CK%sT # Cocos # From USNO (1989): # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Indian/Cocos 6:30 - CCT +Zone Indian/Cocos 6:30 - CCT # Cocos Islands Time # Fiji # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Fiji 11:53:40 - LMT 1915 Oct 26 # Suva - 12:00 - NZST + 12:00 - FJT # Fiji Time # French Polynesia # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Gambier -8:59:48 - LMT 1912 Oct # Rikitea - -9:00 - GBT + -9:00 - GAMT # Gambier Time Zone Pacific/Marquesas -9:18:00 - LMT 1912 Oct - -9:30 - MQT + -9:30 - MART # Marquesas Time Zone Pacific/Tahiti -9:58:16 - LMT 1912 Oct # Papeete - -10:00 - THT + -10:00 - TAHT # Tahiti Time # Guam # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -209,57 +209,57 @@ Zone Pacific/Johnston -10:00 - HST # Kiribati # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Tarawa 11:32:04 - LMT 1901 # Bairiki - 12:00 - NZST + 12:00 - GILT # Gilbert Is Time Zone Pacific/Enderbury -11:24:20 - LMT 1901 - -12:00 - KJT 1979 Oct - -11:00 - SST 1995 - 13:00 - TGT + -12:00 - PHOT 1979 Oct # Phoenix Is Time + -11:00 - PHOT 1995 + 13:00 - PHOT Zone Pacific/Kiritimati -10:29:20 - LMT 1901 - -10:40 - LIT 1979 Oct # Line Is Time - -10:00 - THT 1995 - 14:00 - KRT + -10:40 - LINT 1979 Oct # Line Is Time + -10:00 - LINT 1995 + 14:00 - LINT # N Mariana Is # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Saipan 9:43:00 - LMT 1901 - 9:00 - PLT 1969 Oct - 10:00 - GST + 9:00 - MPT 1969 Oct # N Mariana Is Time + 10:00 - MPT # Marshall Is # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Majuro 11:24:48 - LMT 1901 - 11:00 - NCST 1969 Oct - 12:00 - NZST + 11:00 - MHT 1969 Oct # Marshall Islands Time + 12:00 - MHT Zone Pacific/Kwajalein 11:09:20 - LMT 1901 - 11:00 - NCST 1969 Oct - -12:00 - KJT 1993 Aug 20 - 12:00 - NZST + 11:00 - MHT 1969 Oct + -12:00 - KWAT 1993 Aug 20 # Kwajalein Time + 12:00 - MHT # Micronesia # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Yap 9:12:32 - LMT 1901 # Colonia - 9:00 - PLT 1969 Oct - 10:00 - GST + 9:00 - YAPT 1969 Oct # Yap Time + 10:00 - YAPT Zone Pacific/Truk 10:07:08 - LMT 1901 - 10:00 - GST + 10:00 - TRUT # Truk Time Zone Pacific/Ponape 10:32:52 - LMT 1901 # Kolonia - 11:00 - NCST + 11:00 - PONT # Ponape Time Zone Pacific/Kosrae 10:51:56 - LMT 1901 - 11:00 - NCST 1969 Oct - 12:00 - NZST + 11:00 - PONT 1969 Oct + 12:00 - KOST # Kosrae Time # Nauru # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Nauru 11:07:40 - LMT 1921 Jan 15 # Uaobe - 11:30 - NST 1942 Mar 15 + 11:30 - NRT 1942 Mar 15 # Nauru Time 9:00 - JST 1944 Aug 15 - 11:30 - NST 1979 May - 12:00 - NZST + 11:30 - NRT 1979 May + 12:00 - NRT # New Caledonia # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 D -Rule NC 1978 1979 - Feb 27 0:00 0 S +Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 S +Rule NC 1978 1979 - Feb 27 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Noumea 11:05:48 - LMT 1912 Jan 13 11:00 NC NC%sT @@ -293,11 +293,11 @@ Rule NZ 1990 max - Mar Sun>=15 2:00s 0 S Zone Pacific/Auckland 11:39:04 - LMT 1868 11:30 NZ NZ%sT 1940 Sep 29 2:00 12:00 NZ NZ%sT -Zone Pacific/Chatham 12:45 NZ CH%sT +Zone Pacific/Chatham 12:45 NZ CHA%sT # Antipodes Is, Kermadec Is -# no information; probably like Pacific/Auckland +# uninhabited except by research personnel; probably like Pacific/Auckland ############################################################################### @@ -305,20 +305,20 @@ Zone Pacific/Chatham 12:45 NZ CH%sT # Niue # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Niue -11:19:40 - LMT 1901 # Alofi - -11:20 - NIT 1951 # Niue I Time - -11:30 - NIT 1978 Oct 1 - -11:00 - SST + -11:20 - NUT 1951 # Niue Time + -11:30 - NUT 1978 Oct 1 + -11:00 - NUT # Norfolk # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Norfolk 11:11:52 - LMT 1901 # Kingston - 11:12 - NMT 1951 - 11:30 - NRFT + 11:12 - NMT 1951 # Norfolk Mean Time + 11:30 - NFT # Norfolk Time # Palau # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Palau 8:57:56 - LMT 1901 # Koror - 9:00 - PLT + 9:00 - PWT # Palau Time # Palmyra # uninhabited since World War II; was probably like Pacific/Kiritmati @@ -326,18 +326,18 @@ Zone Pacific/Palau 8:57:56 - LMT 1901 # Koror # Papua New Guinea # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Port_Moresby 9:48:40 - LMT 1880 - 9:49 - PMMT 1895 - 10:00 - EST + 9:48:40 - PMMT 1895 # Port Moresby Mean Time + 10:00 - PGT # Papua New Guinea Time # Pitcairn # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Pitcairn -8:40:20 - LMT 1901 # Adamstown - -8:30 - PIT + -8:30 - PNT # Pitcairn Time # American Samoa Zone Pacific/Pago_Pago 12:37:12 - LMT 1879 Jul 5 -11:22:48 - LMT 1911 - -11:30 - SST 1950 + -11:30 - SAMT 1950 # Samoa Time -11:00 - NST 1967 Apr # N=Nome -11:00 - BST 1983 Nov 30 # B=Bering -11:00 - SST # S=Samoa @@ -345,52 +345,52 @@ Zone Pacific/Pago_Pago 12:37:12 - LMT 1879 Jul 5 # W Samoa Zone Pacific/Apia 12:33:04 - LMT 1879 Jul 5 -11:26:56 - LMT 1911 - -11:30 - SST 1950 - -11:00 - SST + -11:30 - SAMT 1950 # Samoa Time + -11:00 - WST # W Samoa Time # Solomon Is # excludes Bougainville, for which see Papua New Guinea # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct # Honiara - 11:00 - NCST + 11:00 - SBT # Solomon Is Time # Tokelau Is # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Fakaofo -11:24:56 - LMT 1901 - -10:00 - THT + -10:00 - TKT # Tokelau Time # Tonga # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Tongatapu 12:19:20 - LMT 1901 - 12:20 - TMT 1968 Oct - 13:00 - TGT + 12:20 - TOT 1968 Oct # Tonga Time + 13:00 - TOT # Tuvalu # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Funafuti 11:56:52 - LMT 1901 - 12:00 - NZST + 12:00 - TVT # Tuvalu Time # Vanuatu # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Vanuatu 1983 only - Sep 25 0:00 1:00 D -Rule Vanuatu 1984 1991 - Mar Sun>=23 0:00 0 S -Rule Vanuatu 1984 only - Oct 23 0:00 1:00 D -Rule Vanuatu 1985 1990 - Sep Sun>=23 0:00 1:00 D -Rule Vanuatu 1991 max - Sep lastSun 0:00 1:00 D -Rule Vanuatu 1992 max - Mar lastSun 0:00 0 S +Rule Vanuatu 1983 only - Sep 25 0:00 1:00 S +Rule Vanuatu 1984 1991 - Mar Sun>=23 0:00 0 - +Rule Vanuatu 1984 only - Oct 23 0:00 1:00 S +Rule Vanuatu 1985 1990 - Sep Sun>=23 0:00 1:00 S +Rule Vanuatu 1991 max - Sep lastSun 0:00 1:00 S +Rule Vanuatu 1992 max - Mar lastSun 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila - 11:00 - NCST + 11:00 Vanuatu VU%sT # Vanuatu Time # Wake # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Wake 11:06:28 - LMT 1901 - 12:00 - NZST + 12:00 - WAKT # Wake Time # Wallis and Futuna # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Wallis 12:15:20 - LMT 1901 - 12:00 - NZST + 12:00 - WFT # Wallis & Futuna Time ############################################################################### @@ -419,34 +419,21 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # Corrections are welcome! # std dst # LMT Local Mean Time -# 6:30 CCT Cocos* -# 7:00 JVT Java* # 8:00 WST WST Western Australia # 9:00 JST Japan -# 9:00 PLT Palau* # 9:30 CST CST Central Australia # 10:00 EST EST Eastern Australia -# 10:00 GST Guam* +# 10:00 GST Guam # 10:30 LHST LHST Lord Howe* -# 11:00 NCST NCDT New Caledonia* -# 11:30 NRFT Norfolk* # 12:00 NZST NZDT New Zealand -# 12:45 CHST CHDT Chatham* -# 13:00 TGT Tongatapu* -# 14:00 KRT Kiritimati* -# -12:00 KJT Kwajalein (no longer used)* +# 12:45 CHAST CHADT Chatham* # -11:00 SST Samoa -# -10:40 LIT Line Is (no longer used)* -# -10:00 THT Tahiti* # -10:00 HST Hawaii -# - 9:30 MQT Marquesas* -# - 9:00 GBT Gambier* -# - 8:30 PIT Pitcairn* # # See the `northamerica' file for Hawaii. # See the `southamerica' file for Easter I and the Galapagos Is. # -# See the `africa' file for Zone naming conventions. +# See the `africa' file for time zone naming and abbreviation conventions. ############################################################################### diff --git a/time/europe b/time/europe index ce66e8a..73fa55c 100644 --- a/time/europe +++ b/time/europe @@ -1,10 +1,10 @@ -# @(#)europe 7.38 +# @(#)europe 7.39 # 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 # tz@elsie.nci.nih.gov for general use in the future). -# From Paul Eggert <eggert@twinsun.com> (1995-12-19): +# From Paul Eggert <eggert@twinsun.com> (1996-09-03): # A good source for time zone historical data outside the U.S. is # Thomas G. Shanks, The International Atlas (3rd edition), # San Diego: ACS Publications, Inc. (1991). @@ -16,43 +16,24 @@ # # I invented the abbreviations marked `*' in the following table; # the rest are from earlier versions of this file, or from other sources. -# The starred Russian names are dubious. Corrections are welcome! +# Corrections are welcome! # std dst # LMT Local Mean Time -# LST Local Star Time (Russian ``mestnoe zvezdnoe vremya'') # -4:00 AST Atlantic -# -3:00 WGT+DST Western Greenland* -# -2:00 MGT+DST Middle Greenland* -# -1:00 EGT+DST Eastern Greenland* -# -1:00 ACT+DST Azores and Canaries* -# -1:00 IST IDT Iceland (no longer used)* +# -3:00 WGT WGST Western Greenland* +# -1:00 EGT EGST Eastern Greenland* # 0:00 GMT BST Greenwich, British Summer -# 0:00 WET+DST Western Europe -# 1:00 MET+DST Middle Europe -# 2:00 EET+DST Eastern Europe -# 3:00 MSK MSD Moscow -# 3:00 TUR+DST Turkey (no longer used)* -# 4:00 KSK KSD Kuybyshev (was 3:00)* -# 5:00 ESK ESD Yekaterinburg (was 4:00) (was SSK, SSD)* -# 6:00 OSK OSD Omsk (was 5:00)* -# 6:00 NSK NSD Novosibirsk (was 7:00) -# 7:00 KRSK KRSD Krasnoyarsk (was 6:00) -# 8:00 ISK ISD Irkutsk (was 7:00)* -# 9:00 YSK YSD Yakutsk (was 8:00)* -# 10:00 VSK VSD Vladivostok (was 9:00)* -# 11:00 MSK MSD Magadan (was 10:00)* -# 12:00 PSK PSD Petropavlovsk-Kamchatski (was 11:00)* -# 13:00 ASK ASD Anadyr (was 12:00)* -# -# See the `africa' file for Zone naming conventions. +# 0:00 GMT IST Greenwich, Irish Summer +# 0:00 WET WEST Western Europe +# 1:00 CET CEST Central Europe +# 2:00 EET EEST Eastern Europe +# +# See the `africa' file for time zone naming and abbreviation conventions. # # A reliable and entertaining source about time zones, especially in Britain, # is Derek Howse, Greenwich time and the discovery of the longitude, # Oxford University Press (1980). -# From Andrew A. Chernov <ache@astral.msk.su> (November 12, 1993): -# LST is Local Star Time (``mestnoe zvezdnoe vremya''). - # From Peter Ilieve <peter@memex.co.uk> (December 4, 1994), # The original six [EU members]: Belgium, France, (West) Germany, Italy, # Luxembourg, the Netherlands. @@ -74,9 +55,11 @@ # different end date for the UK and Ireland, and this was always allowed # in the Directive. + ############################################################################### # United Kingdom +# The UK and its colonies adopted the Gregorian calendar on 1752-09-14. # From Peter Ilieve <peter@memex.co.uk> (July 6, 1994): # @@ -134,6 +117,12 @@ # but it met with ridicule and opposition, especially from farming interests. # One-hour Summer Time was eventually adopted as a wartime measure in 1916. +# From Paul Eggert (1996-09-03): +# The OED Supplement says that the English originally said ``Daylight Saving'' +# when they were debating the adoption of DST in 1908; but by 1916 this +# term appears only in quotes taken from DST's opponents, whereas the +# proponents (who eventually won the argument) are quoted as using ``Summer''. + # From Arthur David Olson (January 19, 1989): # # A source at the British Information Office in New York avers that it's @@ -194,6 +183,12 @@ # Sunday, but in the night of Sunday- Monday so that it will operate from # Monday, 2nd April.' +# From Chris Carrier <72157.3334@CompuServe.COM> (1996-06-14): +# I remember reading in various wartime issues of the London Times the +# acronym BDST for British Double Summer Time. Look for the published +# time of sunrise and sunset in The Times, when BDST was in effect, and +# if you find a zone reference it will say, "All times B.D.S.T." + # From Peter Ilieve <peter@memex.co.uk> (September 3, 1993): # # > # Current rules @@ -719,18 +714,18 @@ Rule GB-Eire 1939 only - Apr Sun>=16 2:00s 1:00 BST # 1939 end to 1947--irregular, and with double summer time Rule GB-Eire 1939 only - Nov 19 2:00s 0 GMT Rule GB-Eire 1940 only - Feb 25 2:00s 1:00 BST -Rule GB-Eire 1941 only - May Sun>=2 1:00s 2:00 DST +Rule GB-Eire 1941 only - May Sun>=2 1:00s 2:00 BDST Rule GB-Eire 1941 1943 - Aug Sun>=9 1:00s 1:00 BST -Rule GB-Eire 1942 1944 - Apr Sun>=2 1:00s 2:00 DST +Rule GB-Eire 1942 1944 - Apr Sun>=2 1:00s 2:00 BDST Rule GB-Eire 1944 only - Sep Sun>=16 1:00s 1:00 BST # Double daylight starts on a Monday in 1945--see above. -Rule GB-Eire 1945 only - Apr 2 1:00s 2:00 DST +Rule GB-Eire 1945 only - Apr 2 1:00s 2:00 BDST Rule GB-Eire 1945 only - Jul 15 1:00s 1:00 BST Rule GB-Eire 1945 only - Oct 7 2:00s 0 GMT Rule GB-Eire 1946 only - Apr 14 2:00s 1:00 BST Rule GB-Eire 1946 only - Oct 6 2:00s 0 GMT Rule GB-Eire 1947 only - Mar 16 2:00s 1:00 BST -Rule GB-Eire 1947 only - Apr 13 1:00s 2:00 DST +Rule GB-Eire 1947 only - Apr 13 1:00s 2:00 BDST Rule GB-Eire 1947 only - Aug 10 1:00s 1:00 BST Rule GB-Eire 1947 only - Nov 2 2:00s 0 GMT # So much for double saving time. 1948 and 1949, irregular. @@ -768,15 +763,15 @@ Zone Europe/London -0:01:15 - LMT 1847 Sep 22 0:00 EU GMT/BST Zone Europe/Belfast -0:23:40 - LMT 1880 Aug 2 -0:25:21 - DMT 1916 May 21 2:00 # Dublin MT - -0:25:21 1:00 DST 1916 Oct 1 3:00 + -0:25:21 1:00 IST 1916 Oct 1 3:00 # Irish Summer Time 0:00 GB-Eire %s 1968 Oct 27 1:00 - BST 1971 Oct 31 2:00u 0:00 GB-Eire %s 1996 0:00 EU GMT/BST Zone Europe/Dublin -0:25:21 - LMT 1880 Aug 2 -0:25:21 - DMT 1916 May 21 2:00 # Dublin MT - -0:25:21 1:00 DST 1916 Oct 1 3:00 - 0:00 GB-Eire %s 1921 Dec 6 + -0:25:21 1:00 IST 1916 Oct 1 3:00 + 0:00 GB-Eire %s 1921 Dec 6 # independence 0:00 GB-Eire GMT/IST 1940 Feb 25 2:00 0:00 1:00 IST 1946 Oct 6 2:00 0:00 - GMT 1947 Mar 16 2:00 @@ -795,259 +790,278 @@ Zone Europe/Dublin -0:25:21 - LMT 1880 Aug 2 # Common Market, etc. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 " DST" +Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 S Rule EU 1977 only - Sep lastSun 1:00u 0 - Rule EU 1978 only - Oct 1 1:00u 0 - Rule EU 1979 1995 - Sep lastSun 1:00u 0 - -Rule EU 1981 max - Mar lastSun 1:00u 1:00 " DST" +Rule EU 1981 max - Mar lastSun 1:00u 1:00 S Rule EU 1996 max - Oct lastSun 1:00u 0 - # W-Eur differs from EU only in that W-Eur uses standard time. -Rule W-Eur 1977 1980 - Apr Sun>=1 1:00s 1:00 " DST" +Rule W-Eur 1977 1980 - Apr Sun>=1 1:00s 1:00 S Rule W-Eur 1977 only - Sep lastSun 1:00s 0 - Rule W-Eur 1978 only - Oct 1 1:00s 0 - Rule W-Eur 1979 1995 - Sep lastSun 1:00s 0 - -Rule W-Eur 1981 max - Mar lastSun 1:00s 1:00 " DST" +Rule W-Eur 1981 max - Mar lastSun 1:00s 1:00 S Rule W-Eur 1996 max - Oct lastSun 1:00s 0 - -# Older M-Eur rules are for convenience in the tables. -# From 1977 on, M-Eur differs from EU only in that M-Eur uses standard time. -Rule M-Eur 1916 only - Apr 30 23:00 1:00 " DST" -Rule M-Eur 1916 only - Oct 1 1:00 0 - -Rule M-Eur 1917 1918 - Apr Mon>=15 2:00s 1:00 " DST" -Rule M-Eur 1917 1918 - Sep Mon>=15 2:00s 0 - -Rule M-Eur 1940 only - Apr 1 2:00s 1:00 " DST" +# Older C-Eur rules are for convenience in the tables. +# From 1977 on, C-Eur differs from EU only in that C-Eur uses standard time. +Rule C-Eur 1916 only - Apr 30 23:00 1:00 S +Rule C-Eur 1916 only - Oct 1 1:00 0 - +Rule C-Eur 1917 1918 - Apr Mon>=15 2:00s 1:00 S +Rule C-Eur 1917 1918 - Sep Mon>=15 2:00s 0 - +Rule C-Eur 1940 only - Apr 1 2:00s 1:00 S # Whitman says 1941 DST was only from Feb 25 to Oct 5; go with Shanks. -Rule M-Eur 1942 only - Nov 2 2:00s 0 - -Rule M-Eur 1943 only - Mar 29 2:00s 1:00 " DST" -Rule M-Eur 1943 only - Oct 4 2:00s 0 - -Rule M-Eur 1944 only - Apr 3 2:00s 1:00 " DST" +Rule C-Eur 1942 only - Nov 2 2:00s 0 - +Rule C-Eur 1943 only - Mar 29 2:00s 1:00 S +Rule C-Eur 1943 only - Oct 4 2:00s 0 - +Rule C-Eur 1944 only - Apr 3 2:00s 1:00 S # Whitman gives 1944 Oct 7; go with Shanks. -Rule M-Eur 1944 only - Oct 2 2:00s 0 - -Rule M-Eur 1977 1980 - Apr Sun>=1 2:00s 1:00 " DST" -Rule M-Eur 1977 only - Sep lastSun 2:00s 0 - -Rule M-Eur 1978 only - Oct 1 2:00s 0 - -Rule M-Eur 1979 1995 - Sep lastSun 2:00s 0 - -Rule M-Eur 1981 max - Mar lastSun 2:00s 1:00 " DST" -Rule M-Eur 1996 max - Oct lastSun 2:00s 0 - +Rule C-Eur 1944 only - Oct 2 2:00s 0 - +Rule C-Eur 1977 1980 - Apr Sun>=1 2:00s 1:00 S +Rule C-Eur 1977 only - Sep lastSun 2:00s 0 - +Rule C-Eur 1978 only - Oct 1 2:00s 0 - +Rule C-Eur 1979 1995 - Sep lastSun 2:00s 0 - +Rule C-Eur 1981 max - Mar lastSun 2:00s 1:00 S +Rule C-Eur 1996 max - Oct lastSun 2:00s 0 - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Russia 1917 only - Jul 1 23:00 1:00 " DST" -Rule Russia 1917 only - Dec 28 0:00 0 - -Rule Russia 1918 only - May 31 22:00 2:00 " DDST" -Rule Russia 1918 only - Sep 17 0:00 1:00 " DST" -Rule Russia 1919 only - May 31 23:00 2:00 " DDST" -Rule Russia 1919 only - Jul 1 2:00 1:00 D -Rule Russia 1919 only - Aug 16 0:00 0 K -Rule Russia 1921 only - Feb 14 23:00 1:00 D +Rule Russia 1917 only - Jul 1 23:00 1:00 MST # Moscow Summer Time +Rule Russia 1917 only - Dec 28 0:00 0 MMT # Moscow Mean Time +Rule Russia 1918 only - May 31 22:00 2:00 MDST # Moscow Double Summer Time +Rule Russia 1918 only - Sep 17 0:00 1:00 MST +Rule Russia 1919 only - May 31 23:00 2:00 MDST +Rule Russia 1919 only - Jul 1 2:00 1:00 S +Rule Russia 1919 only - Aug 16 0:00 0 - +Rule Russia 1921 only - Feb 14 23:00 1:00 S # Shanks gives 1921 Mar 21 for the following transition. # From Andrew A. Chernov <ache@astral.msk.su> (November 12, 1993): # My sources says, that it is Mar 20, not 21. -Rule Russia 1921 only - Mar 20 23:00 2:00 DD -Rule Russia 1921 only - Sep 1 0:00 1:00 D -Rule Russia 1921 only - Oct 1 0:00 0 K -Rule Russia 1981 1984 - Apr 1 0:00 1:00 D -Rule Russia 1981 1983 - Oct 1 0:00 0 K -Rule Russia 1984 max - Sep lastSun 2:00s 0 K -Rule Russia 1985 max - Mar lastSun 2:00s 1:00 D +Rule Russia 1921 only - Mar 20 23:00 2:00 DS +Rule Russia 1921 only - Sep 1 0:00 1:00 S +Rule Russia 1921 only - Oct 1 0:00 0 - +Rule Russia 1981 1984 - Apr 1 0:00 1:00 S +Rule Russia 1981 1983 - Oct 1 0:00 0 - +Rule Russia 1984 max - Sep lastSun 2:00s 0 - +Rule Russia 1985 max - Mar lastSun 2:00s 1:00 S # These are for backward compatibility with older versions. # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone WET 0:00 EU WET%s -Zone MET 1:00 M-Eur MET%s -Zone EET 2:00 EU EET%s +Zone WET 0:00 EU WE%sT +Zone CET 1:00 C-Eur CE%sT +Zone MET 1:00 C-Eur ME%sT +Zone EET 2:00 EU EE%sT -# Tom Hoffman says that MET is also known as Central European Time +# Previous editions of this database used abbreviations like MET DST +# for Central European Summer Time, but this didn't agree with common usage. + +# From Markus Kuhn <mskuhn@unrza3.dialin.rrze.uni-erlangen.de> (1996-07-12): +# The official German names ... are +# +# Mitteleuropaeische Zeit (MEZ) = UTC+01:00 +# Mitteleuropaeische Sommerzeit (MESZ) = UTC+02:00 +# +# as defined in the German Time Act (Gesetz ueber die Zeitbestimmung (ZeitG), +# 1978-07-25, Bundesgesetzblatt, Jahrgang 1978, Teil I, S. 1110-1111).... +# I wrote ... to the German Federal Physical-Technical Institution +# +# Physikalisch-Technische Bundesanstalt (PTB) +# Laboratorium 4.41 "Zeiteinheit" +# Postfach 3345 +# D-38023 Braunschweig +# phone: +49 531 592-0 +# +# ... I received today an answer letter from Dr. Peter Hetzel, head of the PTB +# department for time and frequency transmission. He explained that the +# PTB translates MEZ and MESZ into English as +# +# Central European Time (CET) = UTC+01:00 +# Central European Summer Time (CEST) = UTC+02:00 -Link MET CET # Albania # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Albania 1940 only - Jun 16 0:00 1:00 " DST" +Rule Albania 1940 only - Jun 16 0:00 1:00 S Rule Albania 1942 only - Nov 2 3:00 0 - -Rule Albania 1943 only - Mar 29 2:00 1:00 " DST" +Rule Albania 1943 only - Mar 29 2:00 1:00 S Rule Albania 1943 only - Apr 10 3:00 0 - -Rule Albania 1974 only - May 4 0:00 1:00 " DST" +Rule Albania 1974 only - May 4 0:00 1:00 S Rule Albania 1974 only - Oct 2 0:00 0 - -Rule Albania 1975 only - May 1 0:00 1:00 " DST" +Rule Albania 1975 only - May 1 0:00 1:00 S Rule Albania 1975 only - Oct 2 0:00 0 - -Rule Albania 1976 only - May 2 0:00 1:00 " DST" +Rule Albania 1976 only - May 2 0:00 1:00 S Rule Albania 1976 only - Oct 3 0:00 0 - -Rule Albania 1977 only - May 8 0:00 1:00 " DST" +Rule Albania 1977 only - May 8 0:00 1:00 S Rule Albania 1977 only - Oct 2 0:00 0 - -Rule Albania 1978 only - May 6 0:00 1:00 " DST" +Rule Albania 1978 only - May 6 0:00 1:00 S Rule Albania 1978 only - Oct 1 0:00 0 - -Rule Albania 1979 only - May 5 0:00 1:00 " DST" +Rule Albania 1979 only - May 5 0:00 1:00 S Rule Albania 1979 only - Sep 30 0:00 0 - -Rule Albania 1980 only - May 3 0:00 1:00 " DST" +Rule Albania 1980 only - May 3 0:00 1:00 S Rule Albania 1980 only - Oct 4 0:00 0 - -Rule Albania 1981 only - Apr 26 0:00 1:00 " DST" +Rule Albania 1981 only - Apr 26 0:00 1:00 S Rule Albania 1981 only - Sep 27 0:00 0 - -Rule Albania 1982 only - May 2 0:00 1:00 " DST" +Rule Albania 1982 only - May 2 0:00 1:00 S Rule Albania 1982 only - Oct 3 0:00 0 - -Rule Albania 1983 only - Apr 18 0:00 1:00 " DST" +Rule Albania 1983 only - Apr 18 0:00 1:00 S Rule Albania 1983 only - Oct 1 0:00 0 - -Rule Albania 1984 only - Apr 1 0:00 1:00 " DST" +Rule Albania 1984 only - Apr 1 0:00 1:00 S Rule Albania 1984 only - Oct 1 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Tirane 1:19:20 - LMT 1914 - 1:00 - MET 1940 Jun 16 - 1:00 Albania MET%s 1985 Mar 31 1:00 - 1:00 W-Eur MET%s -# This may change to `EU' soon. + 1:00 - CET 1940 Jun 16 + 1:00 Albania CE%sT 1985 Mar 31 1:00 + 1:00 W-Eur CE%sT # Andorra # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Andorra 0:06:04 - LMT 1901 0:00 - WET 1946 Sep 30 - 1:00 - MET 1985 Mar 31 2:00 - 1:00 EU MET%s + 1:00 - CET 1985 Mar 31 2:00 + 1:00 EU CE%sT # Austria # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Austria 1920 only - Apr 5 2:00s 1:00 " DST" +Rule Austria 1920 only - Apr 5 2:00s 1:00 S Rule Austria 1920 only - Sep 13 2:00s 0 - -Rule Austria 1945 only - Apr 2 2:00s 1:00 " DST" +Rule Austria 1945 only - Apr 2 2:00s 1:00 S Rule Austria 1945 only - Nov 18 2:00s 0 - -Rule Austria 1946 only - Apr 14 2:00s 1:00 " DST" +Rule Austria 1946 only - Apr 14 2:00s 1:00 S Rule Austria 1946 1948 - Oct Sun>=1 2:00s 0 - -Rule Austria 1947 only - Apr 6 2:00s 1:00 " DST" -Rule Austria 1948 only - Apr 18 2:00s 1:00 " DST" +Rule Austria 1947 only - Apr 6 2:00s 1:00 S +Rule Austria 1948 only - Apr 18 2:00s 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Vienna 1:05:20 - LMT 1893 Apr - 1:00 M-Eur MET%s 1918 Jun 16 3:00 - 1:00 Austria MET%s 1940 Apr 1 2:00 - 1:00 M-Eur MET%s 1945 Apr 2 2:00 - 1:00 Austria MET%s 1981 - 1:00 EU MET%s + 1:00 C-Eur CE%sT 1918 Jun 16 3:00 + 1:00 Austria CE%sT 1940 Apr 1 2:00 + 1:00 C-Eur CE%sT 1945 Apr 2 2:00 + 1:00 Austria CE%sT 1981 + 1:00 EU CE%sT # Belarus # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Minsk 1:50:16 - LMT 1880 - 2:31 Russia LST%s 1919 Jul 1 2:00 - 3:00 Russia MS%s 1922 Oct + 2:30:20 Russia %s 1919 Jul 1 2:00 + 3:00 Russia MOS%sT 1922 Oct # Moscow Time 2:00 - EET 1930 Jun 21 - 3:00 Russia MS%s 1991 Mar 31 2:00s - 2:00 1:00 "EET DST" 1991 Sep 29 2:00s - 2:00 M-Eur EET%s -# This may change to `EU' soon. + 3:00 Russia MOS%sT 1991 Mar 31 2:00s + 2:00 1:00 EEST 1991 Sep 29 2:00s + 2:00 C-Eur EE%sT # Belgium # Whitman and Shanks disagree; go with Shanks, usually. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # From Whitman: -Rule Belgium 1919 only - Mar 1 23:00s 1:00 " DST" +Rule Belgium 1919 only - Mar 1 23:00s 1:00 S Rule Belgium 1919 only - Oct 4 23:00s 0 - # Shanks gives 1920 Feb 14 23:00s; go with Whitman. -Rule Belgium 1920 1921 - Mar 14 23:00s 1:00 " DST" +Rule Belgium 1920 1921 - Mar 14 23:00s 1:00 S Rule Belgium 1920 only - Oct 23 23:00s 0 - Rule Belgium 1921 only - Oct 25 23:00s 0 - -Rule Belgium 1922 only - Mar 25 23:00s 1:00 " DST" +Rule Belgium 1922 only - Mar 25 23:00s 1:00 S # Whitman gives 1927 Oct 1 2:00s and 1928 Oct 7 2:00s; go with Shanks. Rule Belgium 1922 1928 - Oct Sat>=1 23:00s 0 - -Rule Belgium 1923 only - Apr 21 23:00s 1:00 " DST" -Rule Belgium 1924 only - Mar 29 23:00s 1:00 " DST" -Rule Belgium 1925 only - Apr 4 23:00s 1:00 " DST" -Rule Belgium 1926 only - Apr 17 23:00s 1:00 " DST" -Rule Belgium 1927 only - Apr 9 23:00s 1:00 " DST" -Rule Belgium 1928 only - Apr 14 23:00s 1:00 " DST" -Rule Belgium 1929 only - Apr 21 2:00s 1:00 " DST" +Rule Belgium 1923 only - Apr 21 23:00s 1:00 S +Rule Belgium 1924 only - Mar 29 23:00s 1:00 S +Rule Belgium 1925 only - Apr 4 23:00s 1:00 S +Rule Belgium 1926 only - Apr 17 23:00s 1:00 S +Rule Belgium 1927 only - Apr 9 23:00s 1:00 S +Rule Belgium 1928 only - Apr 14 23:00s 1:00 S +Rule Belgium 1929 only - Apr 21 2:00s 1:00 S Rule Belgium 1929 1938 - Oct Sun>=2 2:00s 0 - -Rule Belgium 1930 only - Apr 13 2:00s 1:00 " DST" -Rule Belgium 1931 only - Apr 19 2:00s 1:00 " DST" -Rule Belgium 1932 only - Apr 17 2:00s 1:00 " DST" -Rule Belgium 1933 only - Mar 26 2:00s 1:00 " DST" -Rule Belgium 1934 only - Apr 8 2:00s 1:00 " DST" -Rule Belgium 1935 only - Mar 31 2:00s 1:00 " DST" -Rule Belgium 1936 only - Apr 19 2:00s 1:00 " DST" +Rule Belgium 1930 only - Apr 13 2:00s 1:00 S +Rule Belgium 1931 only - Apr 19 2:00s 1:00 S +Rule Belgium 1932 only - Apr 17 2:00s 1:00 S +Rule Belgium 1933 only - Mar 26 2:00s 1:00 S +Rule Belgium 1934 only - Apr 8 2:00s 1:00 S +Rule Belgium 1935 only - Mar 31 2:00s 1:00 S +Rule Belgium 1936 only - Apr 19 2:00s 1:00 S # Whitman says 1937 Apr 18 2:00s; go with Shanks. -Rule Belgium 1937 only - Apr 4 2:00s 1:00 " DST" +Rule Belgium 1937 only - Apr 4 2:00s 1:00 S # Whitman says 1938 Apr 10 2:00s; go with Shanks. -Rule Belgium 1938 only - Mar 27 2:00s 1:00 " DST" -Rule Belgium 1939 only - Apr 16 2:00s 1:00 " DST" +Rule Belgium 1938 only - Mar 27 2:00s 1:00 S +Rule Belgium 1939 only - Apr 16 2:00s 1:00 S Rule Belgium 1939 only - Nov 19 2:00s 0 - -Rule Belgium 1945 only - Apr 2 2:00s 1:00 " DST" +Rule Belgium 1945 only - Apr 2 2:00s 1:00 S Rule Belgium 1945 only - Sep 16 2:00s 0 - -Rule Belgium 1946 only - May 19 2:00s 1:00 " DST" +Rule Belgium 1946 only - May 19 2:00s 1:00 S Rule Belgium 1946 only - Oct 7 2:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Brussels 0:17:20 - LMT 1880 - 0:17 - BST 1892 May 1 12:00 + 0:17:20 - BMT 1892 May 1 12:00 # Brussels MT 0:00 - WET 1914 Aug 4 - 1:00 M-Eur MET%s 1919 Mar 1 23:00 - 0:00 Belgium WET%s 1940 Feb 24 23:00 - 1:00 M-Eur MET%s 1945 Apr 2 2:00 - 1:00 Belgium MET%s 1977 - 1:00 EU MET%s + 1:00 C-Eur CE%sT 1919 Mar 1 23:00 + 0:00 Belgium WE%sT 1940 Feb 24 23:00 + 1:00 C-Eur CE%sT 1945 Apr 2 2:00 + 1:00 Belgium CE%sT 1977 + 1:00 EU CE%sT # Bosnia and Herzegovina -# They switched from the Julian to the Gregorian calendar on 1918 Mar 18. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Sarajevo 1:13:40 - LMT 1884 - 1:00 - MET 1941 Apr 18 23:00 - 1:00 M-Eur MET%s 1945 May 8 2:00s - 1:00 1:00 "MET DST" 1945 Sep 16 2:00s - 1:00 - MET 1983 - 1:00 EU MET%s + 1:00 - CET 1941 Apr 18 23:00 + 1:00 C-Eur CE%sT 1945 May 8 2:00s + 1:00 1:00 CEST 1945 Sep 16 2:00s + 1:00 - CET 1983 + 1:00 EU CE%sT # Bulgaria -# Part switched from the Julian to the Gregorian calendar on 1915 Nov 14; -# the rest switched on 1920 Sep 17. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Bulg 1979 only - Mar 31 23:00 1:00 " DST" +Rule Bulg 1979 only - Mar 31 23:00 1:00 S Rule Bulg 1979 only - Oct 1 1:00 0 - -Rule Bulg 1980 1982 - Apr Sat<=7 23:00 1:00 " DST" +Rule Bulg 1980 1982 - Apr Sat<=7 23:00 1:00 S Rule Bulg 1980 only - Sep 29 1:00 0 - Rule Bulg 1981 only - Sep 27 2:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Sofia 1:33:16 - LMT 1880 - 1:57 - TST 1894 Nov 30 + 1:56:56 - IMT 1894 Nov 30 # Istanbul MT? 2:00 - EET 1942 Nov 2 3:00 - 1:00 M-Eur MET%s 1945 Apr 2 3:00 + 1:00 C-Eur CE%sT 1945 Apr 2 3:00 2:00 - EET 1979 Mar 31 23:00 - 2:00 Bulg EET%s 1982 Sep 26 2:00 - 2:00 M-Eur EET%s -# This may change to `EU' soon. + 2:00 Bulg EE%sT 1982 Sep 26 2:00 + 2:00 C-Eur EE%sT # Croatia -# They switched from the Julian to the Gregorian calendar on 1918 Mar 18. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Zagreb 1:03:52 - LMT 1884 - 1:00 - MET 1941 Apr 18 23:00 - 1:00 M-Eur MET%s 1945 May 8 2:00s - 1:00 1:00 "MET DST" 1945 Sep 16 2:00s - 1:00 - MET 1983 - 1:00 EU MET%s + 1:00 - CET 1941 Apr 18 23:00 + 1:00 C-Eur CE%sT 1945 May 8 2:00s + 1:00 1:00 CEST 1945 Sep 16 2:00s + 1:00 - CET 1983 + 1:00 EU CE%sT # Czech Republic +# Gregorian calendar adopted 1584-01-17. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Czech 1945 only - Apr 8 2:00s 1:00 " DST" +Rule Czech 1945 only - Apr 8 2:00s 1:00 S Rule Czech 1945 only - Nov 18 2:00s 0 - -Rule Czech 1946 only - May 6 2:00s 1:00 " DST" +Rule Czech 1946 only - May 6 2:00s 1:00 S Rule Czech 1946 1949 - Oct Sun>=1 2:00s 0 - -Rule Czech 1947 only - Apr 20 2:00s 1:00 " DST" -Rule Czech 1948 only - Apr 18 2:00s 1:00 " DST" -Rule Czech 1949 only - Apr 9 2:00s 1:00 " DST" +Rule Czech 1947 only - Apr 20 2:00s 1:00 S +Rule Czech 1948 only - Apr 18 2:00s 1:00 S +Rule Czech 1949 only - Apr 9 2:00s 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Prague 0:57:44 - LMT 1850 - 0:58 - PMT 1891 Oct # Prague Mean Time - 1:00 M-Eur MET%s 1944 Sep 17 2:00s - 1:00 Czech MET%s 1979 - 1:00 EU MET%s + 0:57:44 - PMT 1891 Oct # Prague Mean Time + 1:00 C-Eur CE%sT 1944 Sep 17 2:00s + 1:00 Czech CE%sT 1979 + 1:00 EU CE%sT # Denmark +# Gregorian calendar adopted 1700-03-01. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Denmark 1916 only - May 14 23:00 1:00 " DST" +Rule Denmark 1916 only - May 14 23:00 1:00 S Rule Denmark 1916 only - Sep 30 23:00 0 - -Rule Denmark 1940 only - May 15 0:00 1:00 " DST" -Rule Denmark 1945 only - Apr 2 2:00s 1:00 " DST" +Rule Denmark 1940 only - May 15 0:00 1:00 S +Rule Denmark 1945 only - Apr 2 2:00s 1:00 S Rule Denmark 1945 only - Aug 15 2:00s 0 - -Rule Denmark 1946 only - May 1 2:00s 1:00 " DST" +Rule Denmark 1946 only - May 1 2:00s 1:00 S Rule Denmark 1946 only - Sep 1 2:00s 0 - -Rule Denmark 1947 only - May 4 2:00s 1:00 " DST" +Rule Denmark 1947 only - May 4 2:00s 1:00 S Rule Denmark 1947 only - Aug 10 2:00s 0 - -Rule Denmark 1948 only - May 9 2:00s 1:00 " DST" +Rule Denmark 1948 only - May 9 2:00s 1:00 S Rule Denmark 1948 only - Aug 8 2:00s 0 - # Whitman also gives 1949 Apr 9 to 1949 Oct 1, and disagrees in minor ways # about many of the above dates; go with Shanks. @@ -1055,45 +1069,43 @@ Rule Denmark 1948 only - Aug 8 2:00s 0 - # For 1894, Shanks says Jan, Whitman Apr; go with Whitman. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Copenhagen 0:50:20 - LMT 1890 - 0:50 - CMT 1894 Apr # Copenhagen Mean Time - 1:00 Denmark MET%s 1942 Nov 2 2:00s - 1:00 M-Eur MET%s 1945 Apr 2 2:00 - 1:00 Denmark MET%s 1980 - 1:00 EU MET%s + 0:50:20 - CMT 1894 Apr # Copenhagen Mean Time + 1:00 Denmark CE%sT 1942 Nov 2 2:00s + 1:00 C-Eur CE%sT 1945 Apr 2 2:00 + 1:00 Denmark CE%sT 1980 + 1:00 EU CE%sT Zone Atlantic/Faeroe -0:27:04 - LMT 1908 Jan 11 # Torshavn 0:00 - WET 1981 - 0:00 EU WET%s + 0:00 EU WE%sT Zone America/Scoresbysund -1:29:00 - LMT 1916 Jul 28 - -2:00 - MGT 1980 Apr 6 2:00 - -2:00 M-Eur MGT%s 1981 Mar 29 - -1:00 M-Eur EGT%s + -2:00 - CGT 1980 Apr 6 2:00 + -2:00 C-Eur CG%sT 1981 Mar 29 + -1:00 C-Eur EG%sT Zone America/Godthab -3:26:56 - LMT 1916 Jul 28 -3:00 - WGT 1980 Apr 6 2:00 - -3:00 M-Eur WGT%s + -3:00 C-Eur WG%sT Zone America/Thule -4:35:08 - LMT 1916 Jul 28 -4:00 - AST # Estonia -# They switched from the Julian to the Gregorian calendar on 1918 Feb 15. -# # From Peter Ilieve <peter@memex.co.uk> (1994-10-15): # A relative in Tallinn confirms the accuracy of the data for 1989 onwards # [through 1994] and gives the legal authority for it, # a regulation of the Government of Estonia, No. 111 of 1989.... # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Tallinn 1:39:00 - LMT 1880 - 1:39 - LST 1918 Feb - 1:00 M-Eur MET%s 1919 Jul - 1:39 - LST 1921 May + 1:39:00 - TMT 1918 Feb # Tallinn Mean Time + 1:00 C-Eur CE%sT 1919 Jul + 1:39:00 - TMT 1921 May 2:00 - EET 1940 Aug 6 - 3:00 - MSK 1941 Sep 15 - 1:00 M-Eur MET%s 1944 Sep 22 - 3:00 Russia MS%s 1989 Mar 26 2:00s - 2:00 1:00 "EET DST" 1989 Sep 24 2:00s - 2:00 M-Eur EET%s -# This may change to `EU' soon. + 3:00 - MOST 1941 Sep 15 # Moscow Time + 1:00 C-Eur CE%sT 1944 Sep 22 + 3:00 Russia MOS%sT 1989 Mar 26 2:00s + 2:00 1:00 EEST 1989 Sep 24 2:00s + 2:00 C-Eur EE%sT # Finland +# See Sweden for when the Gregorian calendar was adopted. # # From Hannu Strang <chs@apu.fi> (25 Sep 1994 06:03:37 UTC): # Well, here in Helsinki we're just changing from summer time to regular one, @@ -1104,61 +1116,64 @@ Zone Europe/Tallinn 1:39:00 - LMT 1880 # Go with Strang instead. # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Finland 1942 only - Apr 3 0:00 1:00 " DST" +Rule Finland 1942 only - Apr 3 0:00 1:00 S Rule Finland 1942 only - Oct 3 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Helsinki 1:39:52 - LMT 1878 May 31 - 1:40 - HMT 1921 May # Helsinki Mean Time - 2:00 Finland EET%s 1981 Mar 29 2:00 - 2:00 EU EET%s + 1:39:52 - HMT 1921 May # Helsinki Mean Time + 2:00 Finland EE%sT 1981 Mar 29 2:00 + 2:00 EU EE%sT # France +# Gregorian calendar adopted 1582-12-20. +# French Revolutionary calendar used 1792-09-22 - 1805-12-31. +# # Shanks seems to use `24:00' ambiguously; we resolve it with Whitman. # From Shanks (1991): # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule France 1916 only - Jun 14 23:00s 1:00 " DST" +Rule France 1916 only - Jun 14 23:00s 1:00 S Rule France 1916 1919 - Oct Sun>=1 0:00 0 - -Rule France 1917 only - Mar 24 23:00s 1:00 " DST" -Rule France 1918 only - Mar 9 23:00s 1:00 " DST" -Rule France 1919 only - Mar 1 23:00s 1:00 " DST" -Rule France 1920 only - Feb 14 23:00s 1:00 " DST" +Rule France 1917 only - Mar 24 23:00s 1:00 S +Rule France 1918 only - Mar 9 23:00s 1:00 S +Rule France 1919 only - Mar 1 23:00s 1:00 S +Rule France 1920 only - Feb 14 23:00s 1:00 S Rule France 1920 only - Oct 23 23:00s 0 - -Rule France 1921 only - Mar 14 23:00s 1:00 " DST" +Rule France 1921 only - Mar 14 23:00s 1:00 S Rule France 1921 only - Oct 25 23:00s 0 - -Rule France 1922 only - Mar 25 23:00s 1:00 " DST" +Rule France 1922 only - Mar 25 23:00s 1:00 S Rule France 1922 1938 - Oct Sat>=1 23:00s 0 - -Rule France 1923 only - May 26 23:00s 1:00 " DST" -Rule France 1924 only - Mar 29 23:00s 1:00 " DST" -Rule France 1925 only - Apr 4 23:00s 1:00 " DST" -Rule France 1926 only - Apr 17 23:00s 1:00 " DST" -Rule France 1927 only - Apr 9 23:00s 1:00 " DST" -Rule France 1928 only - Apr 14 23:00s 1:00 " DST" -Rule France 1929 only - Apr 20 23:00s 1:00 " DST" -Rule France 1930 only - Apr 12 23:00s 1:00 " DST" -Rule France 1931 only - Apr 18 23:00s 1:00 " DST" -Rule France 1932 only - Apr 2 23:00s 1:00 " DST" -Rule France 1933 only - Mar 25 23:00s 1:00 " DST" -Rule France 1934 only - Apr 7 23:00s 1:00 " DST" -Rule France 1935 only - Mar 30 23:00s 1:00 " DST" -Rule France 1936 only - Apr 18 23:00s 1:00 " DST" -Rule France 1937 only - Apr 3 23:00s 1:00 " DST" -Rule France 1938 only - Mar 26 23:00s 1:00 " DST" -Rule France 1939 only - Apr 15 23:00s 1:00 " DST" +Rule France 1923 only - May 26 23:00s 1:00 S +Rule France 1924 only - Mar 29 23:00s 1:00 S +Rule France 1925 only - Apr 4 23:00s 1:00 S +Rule France 1926 only - Apr 17 23:00s 1:00 S +Rule France 1927 only - Apr 9 23:00s 1:00 S +Rule France 1928 only - Apr 14 23:00s 1:00 S +Rule France 1929 only - Apr 20 23:00s 1:00 S +Rule France 1930 only - Apr 12 23:00s 1:00 S +Rule France 1931 only - Apr 18 23:00s 1:00 S +Rule France 1932 only - Apr 2 23:00s 1:00 S +Rule France 1933 only - Mar 25 23:00s 1:00 S +Rule France 1934 only - Apr 7 23:00s 1:00 S +Rule France 1935 only - Mar 30 23:00s 1:00 S +Rule France 1936 only - Apr 18 23:00s 1:00 S +Rule France 1937 only - Apr 3 23:00s 1:00 S +Rule France 1938 only - Mar 26 23:00s 1:00 S +Rule France 1939 only - Apr 15 23:00s 1:00 S Rule France 1939 only - Nov 18 23:00s 0 - -Rule France 1940 only - Feb 25 2:00 1:00 " DST" +Rule France 1940 only - Feb 25 2:00 1:00 S # The French rules for 1941-1944 were not used in Paris, # but were used in other places (e.g. Monaco). -Rule France 1941 only - May 5 0:00 2:00 " DDST" -Rule France 1941 only - Oct 6 1:00 1:00 " DST" -Rule France 1942 only - Mar 8 0:00 2:00 " DDST" -Rule France 1942 only - Nov 2 3:00 1:00 " DST" -Rule France 1943 only - Mar 29 2:00 2:00 " DDST" -Rule France 1943 only - Nov 4 3:00 1:00 " DST" -Rule France 1944 only - Apr 3 2:00 2:00 " DDST" -Rule France 1944 only - Oct 8 1:00 1:00 " DST" -Rule France 1945 only - Apr 2 2:00 2:00 " DDST" +Rule France 1941 only - May 5 0:00 2:00 DS +Rule France 1941 only - Oct 6 1:00 1:00 S +Rule France 1942 only - Mar 8 0:00 2:00 DS +Rule France 1942 only - Nov 2 3:00 1:00 S +Rule France 1943 only - Mar 29 2:00 2:00 DS +Rule France 1943 only - Nov 4 3:00 1:00 S +Rule France 1944 only - Apr 3 2:00 2:00 DS +Rule France 1944 only - Oct 8 1:00 1:00 S +Rule France 1945 only - Apr 2 2:00 2:00 DS Rule France 1945 only - Sep 16 3:00 0 - -Rule France 1976 only - Mar 28 2:00s 1:00 " DST" +Rule France 1976 only - Mar 28 2:00s 1:00 S Rule France 1976 only - Sep lastSun 2:00s 0 - # Shanks gives 0:09 for Paris Mean Time, and Whitman gives 0:09:05, # but Howse quotes the actual French legislation as saying 0:09:21. @@ -1167,106 +1182,105 @@ Rule France 1976 only - Sep lastSun 2:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time - 0:00 France WET%s 1940 Jun 14 - 1:00 M-Eur MET%s 1944 Aug 25 - 0:00 France WET%s 1945 Sep 16 3:00 - 1:00 France MET%s 1977 - 1:00 EU MET%s + 0:00 France WE%sT 1940 Jun 14 + 1:00 C-Eur CE%sT 1944 Aug 25 + 0:00 France WE%sT 1945 Sep 16 3:00 + 1:00 France CE%sT 1977 + 1:00 EU CE%sT # Germany + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Germany 1945 only - Apr 2 2:00s 1:00 " DST" -Rule Germany 1945 only - May 24 2:00 2:00 " DDST" -Rule Germany 1945 only - Sep 24 3:00 1:00 " DST" +Rule Germany 1945 only - Apr 2 2:00s 1:00 S +Rule Germany 1945 only - May 24 2:00 2:00 DS +Rule Germany 1945 only - Sep 24 3:00 1:00 S Rule Germany 1945 only - Nov 18 2:00s 0 - -Rule Germany 1946 only - Apr 14 2:00s 1:00 " DST" +Rule Germany 1946 only - Apr 14 2:00s 1:00 S # Whitman gives 1948 Oct 31; go with Shanks. Rule Germany 1946 1949 - Oct Sun>=1 2:00s 0 - -Rule Germany 1947 only - Apr 6 2:00s 1:00 " DST" -Rule Germany 1947 only - May 11 2:00s 2:00 " DDST" -Rule Germany 1947 only - Jun 29 3:00 1:00 " DST" -Rule Germany 1948 only - Apr 18 2:00s 1:00 " DST" -Rule Germany 1949 only - Apr 10 2:00s 1:00 " DST" +Rule Germany 1947 only - Apr 6 2:00s 1:00 S +Rule Germany 1947 only - May 11 2:00s 2:00 DS +Rule Germany 1947 only - Jun 29 3:00 1:00 S +Rule Germany 1948 only - Apr 18 2:00s 1:00 S +Rule Germany 1949 only - Apr 10 2:00s 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Berlin 0:53:28 - LMT 1893 Apr - 1:00 M-Eur MET%s 1945 Apr 2 2:00 - 1:00 Germany MET%s 1980 - 1:00 EU MET%s + 1:00 C-Eur CE%sT 1945 Apr 2 2:00 + 1:00 Germany CE%sT 1980 + 1:00 EU CE%sT # Gibraltar # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Gibraltar -0:21:24 - LMT 1880 Aug 2 0:00 GB-Eire %s 1957 Apr 14 2:00 - 1:00 - MET 1982 - 1:00 EU MET%s + 1:00 - CET 1982 + 1:00 EU CE%sT # Greece -# They adopted the Julian calendar in 1846. -# Part switched to the Gregorian calendar on 1916 Jul 28. -# The rest switched on 1920 Mar 18. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Whitman gives 1932 Jul 5 - Nov 1; go with Shanks. -Rule Greece 1932 only - Jul 7 0:00 1:00 " DST" +Rule Greece 1932 only - Jul 7 0:00 1:00 S Rule Greece 1932 only - Sep 1 0:00 0 - # Whitman gives 1941 Apr 25 - ?; go with Shanks. -Rule Greece 1941 only - Apr 7 0:00 1:00 " DST" +Rule Greece 1941 only - Apr 7 0:00 1:00 S # Whitman gives 1942 Feb 2 - ?; go with Shanks. Rule Greece 1942 only - Nov 2 3:00 0 - -Rule Greece 1943 only - Mar 30 0:00 1:00 " DST" +Rule Greece 1943 only - Mar 30 0:00 1:00 S Rule Greece 1943 only - Oct 4 0:00 0 - # Whitman gives 1944 Oct 3 - Oct 31; go with Shanks. -Rule Greece 1952 only - Jul 1 0:00 1:00 " DST" +Rule Greece 1952 only - Jul 1 0:00 1:00 S Rule Greece 1952 only - Nov 2 0:00 0 - -Rule Greece 1975 only - Apr 12 0:00s 1:00 " DST" +Rule Greece 1975 only - Apr 12 0:00s 1:00 S Rule Greece 1975 only - Nov 26 0:00s 0 - -Rule Greece 1976 only - Apr 11 2:00s 1:00 " DST" +Rule Greece 1976 only - Apr 11 2:00s 1:00 S Rule Greece 1976 only - Oct 10 2:00s 0 - -Rule Greece 1977 1978 - Apr Sun>=1 2:00s 1:00 " DST" +Rule Greece 1977 1978 - Apr Sun>=1 2:00s 1:00 S Rule Greece 1977 only - Sep 26 2:00s 0 - Rule Greece 1978 only - Sep 24 4:00 0 - -Rule Greece 1979 only - Apr 1 9:00 1:00 " DST" +Rule Greece 1979 only - Apr 1 9:00 1:00 S Rule Greece 1979 only - Sep 29 2:00 0 - -Rule Greece 1980 only - Apr 1 0:00 1:00 " DST" +Rule Greece 1980 only - Apr 1 0:00 1:00 S Rule Greece 1980 only - Sep 28 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Athens 1:34:52 - LMT 1895 Sep 14 - 1:35 - AMT 1916 Jul 28 0:01 # Athens MT - 2:00 Greece EET%s 1941 Apr 30 - 1:00 Greece MET%s 1944 Apr 4 - 2:00 Greece EET%s 1981 - # Shanks says they switched to M-Eur in 1981; + 1:34:52 - AMT 1916 Jul 28 0:01 # Athens MT + 2:00 Greece EE%sT 1941 Apr 30 + 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. - 2:00 EU EET%s + 2:00 EU EE%sT # Hungary +# Gregorian calendar adopted 1587-11-01. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Hungary 1918 only - Apr 1 3:00 1:00 " DST" +Rule Hungary 1918 only - Apr 1 3:00 1:00 S Rule Hungary 1918 only - Sep 29 3:00 0 - -Rule Hungary 1919 only - Apr 15 3:00 1:00 " DST" +Rule Hungary 1919 only - Apr 15 3:00 1:00 S Rule Hungary 1919 only - Sep 15 3:00 0 - -Rule Hungary 1920 only - Apr 5 3:00 1:00 " DST" +Rule Hungary 1920 only - Apr 5 3:00 1:00 S Rule Hungary 1920 only - Sep 30 3:00 0 - -Rule Hungary 1945 only - May 1 23:00 1:00 " DST" +Rule Hungary 1945 only - May 1 23:00 1:00 S Rule Hungary 1945 only - Nov 3 0:00 0 - -Rule Hungary 1946 only - Mar 31 2:00s 1:00 " DST" +Rule Hungary 1946 only - Mar 31 2:00s 1:00 S Rule Hungary 1946 1949 - Oct Sun>=1 2:00s 0 - -Rule Hungary 1947 1949 - Apr Sun>=4 2:00s 1:00 " DST" -Rule Hungary 1950 only - Apr 17 2:00s 1:00 " DST" +Rule Hungary 1947 1949 - Apr Sun>=4 2:00s 1:00 S +Rule Hungary 1950 only - Apr 17 2:00s 1:00 S Rule Hungary 1950 only - Oct 23 2:00s 0 - -Rule Hungary 1954 1955 - May 23 0:00 1:00 " DST" +Rule Hungary 1954 1955 - May 23 0:00 1:00 S Rule Hungary 1954 1955 - Oct 3 0:00 0 - -Rule Hungary 1956 only - Jun Sun>=1 0:00 1:00 " DST" +Rule Hungary 1956 only - Jun Sun>=1 0:00 1:00 S Rule Hungary 1956 only - Sep lastSun 0:00 0 - -Rule Hungary 1957 only - Jun Sun>=1 1:00 1:00 " DST" +Rule Hungary 1957 only - Jun Sun>=1 1:00 1:00 S Rule Hungary 1957 only - Sep lastSun 3:00 0 - -Rule Hungary 1980 only - Apr 6 1:00 1:00 " DST" +Rule Hungary 1980 only - Apr 6 1:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Budapest 1:16:20 - LMT 1890 Oct - 1:00 M-Eur MET%s 1918 - 1:00 Hungary MET%s 1941 Apr 6 2:00 - 1:00 M-Eur MET%s 1945 May 1 23:00 - 1:00 Hungary MET%s 1980 Sep 28 2:00s - 1:00 EU MET%s + 1:00 C-Eur CE%sT 1918 + 1:00 Hungary CE%sT 1941 Apr 6 2:00 + 1:00 C-Eur CE%sT 1945 May 1 23:00 + 1:00 Hungary CE%sT 1980 Sep 28 2:00s + 1:00 EU CE%sT # Iceland # @@ -1295,8 +1309,7 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Oct # (old style), or on St. Luke's day, if a Saturday. # St. Luke's day ought to be traceable from ecclesiastical sources. "old style" # might be a reference to the Julian calendar as opposed to Gregorian, or it -# might mean something else (???). The Gregorian calendar was not introduced -# in Iceland until 1700. +# might mean something else (???). # # From Paul Eggert <eggert@twinsun.com> (December 9, 1993): # The Iceland Almanak, Shanks and Whitman disagree on many points. @@ -1304,37 +1317,39 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Oct # Reykavik was -1:28 from 1837 to 1908, local mean time before that. # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Iceland 1917 1918 - Feb 19 23:00 1:00 D -Rule Iceland 1917 only - Oct 21 1:00 0 S -Rule Iceland 1918 only - Nov 16 1:00 0 S -Rule Iceland 1939 only - Apr 29 23:00 1:00 D -Rule Iceland 1939 only - Nov 29 2:00 0 S -Rule Iceland 1940 only - Feb 25 2:00 1:00 D -Rule Iceland 1940 only - Nov 3 2:00 0 S -Rule Iceland 1941 only - Mar 2 1:00s 1:00 D -Rule Iceland 1941 only - Nov 2 1:00s 0 S -Rule Iceland 1942 only - Mar 8 1:00s 1:00 D -Rule Iceland 1942 only - Oct 25 1:00s 0 S +Rule Iceland 1917 1918 - Feb 19 23:00 1:00 S +Rule Iceland 1917 only - Oct 21 1:00 0 - +Rule Iceland 1918 only - Nov 16 1:00 0 - +Rule Iceland 1939 only - Apr 29 23:00 1:00 S +Rule Iceland 1939 only - Nov 29 2:00 0 - +Rule Iceland 1940 only - Feb 25 2:00 1:00 S +Rule Iceland 1940 only - Nov 3 2:00 0 - +Rule Iceland 1941 only - Mar 2 1:00s 1:00 S +Rule Iceland 1941 only - Nov 2 1:00s 0 - +Rule Iceland 1942 only - Mar 8 1:00s 1:00 S +Rule Iceland 1942 only - Oct 25 1:00s 0 - # 1943-1946 - first Sunday in March until first Sunday in winter -Rule Iceland 1943 1946 - Mar Sun>=1 1:00s 1:00 D -Rule Iceland 1943 1948 - Oct Sun>=22 1:00s 0 S +Rule Iceland 1943 1946 - Mar Sun>=1 1:00s 1:00 S +Rule Iceland 1943 1948 - Oct Sun>=22 1:00s 0 - # 1947-1967 - first Sunday in April until first Sunday in winter -Rule Iceland 1947 1967 - Apr Sun>=1 1:00s 1:00 D +Rule Iceland 1947 1967 - Apr Sun>=1 1:00s 1:00 S # 1949 Oct transition delayed by 1 week -Rule Iceland 1949 only - Oct 30 1:00s 0 S -Rule Iceland 1950 1966 - Oct Sun>=22 1:00s 0 S -Rule Iceland 1967 only - Oct 29 1:00s 0 S +Rule Iceland 1949 only - Oct 30 1:00s 0 - +Rule Iceland 1950 1966 - Oct Sun>=22 1:00s 0 - +Rule Iceland 1967 only - Oct 29 1:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Atlantic/Reykjavik -1:27:24 - LMT 1837 - -1:28 - RMT 1908 # Reykjavik Mean Time - -1:00 Iceland I%sT 1968 Apr 7 1:00s + -1:27:48 - RMT 1908 # Reykjavik Mean Time? + -1:00 Iceland IS%sT 1968 Apr 7 1:00s 0:00 - GMT # Italy +# Gregorian calendar adopted 1582-10-15. +# # From Paul Eggert (1996-05-06): # For Italian DST we have three sources: Shanks, Whitman, and F. Pollastri -# <URL:http://pisolo.cstv.to.cnr.it/toi/uk/ienitlt.html> (see `FP' below), -# taken from a publication of the Italian National Electrotechnical Institute. +# <URL:http://pisolo.cstv.to.cnr.it/toi/uk/ienitlt.html> (1996-03-14) (`FP' +# below), taken from an Italian National Electrotechnical Institute publication. # When the three sources disagree, guess who's right, as follows: # # year FP Shanks (S) Whitman (W) Go with: @@ -1348,186 +1363,180 @@ Zone Atlantic/Reykjavik -1:27:24 - LMT 1837 # 10-04 10-04 24:00 10-04 01:00 FP; guess 24:00s # 1920 03-20 03-20 24:00 03-20 00:00 FP & S # 09-18 09-18 24:00 10-01 01:00 FP; guess 24:00s -# 1944 04-02 04-03 02:00 S (see M-Eur) +# 1944 04-02 04-03 02:00 S (see C-Eur) # 09-16 10-02 03:00 FP; guess 24:00s # 1945 09-14 09-16 24:00 FP; guess 24:00s # 1970 05-21 05-31 00:00 S # 09-20 09-27 00:00 S # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Italy 1916 only - Jun 3 0:00s 1:00 " DST" +Rule Italy 1916 only - Jun 3 0:00s 1:00 S Rule Italy 1916 only - Oct 1 0:00s 0 - -Rule Italy 1917 only - Apr 1 0:00s 1:00 " DST" +Rule Italy 1917 only - Apr 1 0:00s 1:00 S Rule Italy 1917 only - Sep 30 0:00s 0 - -Rule Italy 1918 only - Mar 10 0:00s 1:00 " DST" +Rule Italy 1918 only - Mar 10 0:00s 1:00 S Rule Italy 1918 1919 - Oct Sun>=1 0:00s 0 - -Rule Italy 1919 only - Mar 2 0:00s 1:00 " DST" -Rule Italy 1920 only - Mar 21 0:00s 1:00 " DST" +Rule Italy 1919 only - Mar 2 0:00s 1:00 S +Rule Italy 1920 only - Mar 21 0:00s 1:00 S Rule Italy 1920 only - Sep 19 0:00s 0 - -Rule Italy 1940 only - Jun 15 0:00s 1:00 " DST" +Rule Italy 1940 only - Jun 15 0:00s 1:00 S Rule Italy 1944 only - Sep 17 0:00s 0 - -Rule Italy 1945 only - Apr 2 2:00 1:00 " DST" +Rule Italy 1945 only - Apr 2 2:00 1:00 S Rule Italy 1945 only - Sep 15 0:00s 0 - -Rule Italy 1946 only - Mar 17 2:00s 1:00 " DST" +Rule Italy 1946 only - Mar 17 2:00s 1:00 S Rule Italy 1946 only - Oct 6 2:00s 0 - -Rule Italy 1947 only - Mar 16 0:00s 1:00 " DST" +Rule Italy 1947 only - Mar 16 0:00s 1:00 S Rule Italy 1947 only - Oct 5 0:00s 0 - -Rule Italy 1948 only - Feb 29 2:00s 1:00 " DST" +Rule Italy 1948 only - Feb 29 2:00s 1:00 S Rule Italy 1948 only - Oct 3 2:00s 0 - -Rule Italy 1966 1968 - May Sun>=22 0:00 1:00 " DST" +Rule Italy 1966 1968 - May Sun>=22 0:00 1:00 S Rule Italy 1966 1969 - Sep Sun>=22 0:00 0 - -Rule Italy 1969 only - Jun 1 0:00 1:00 " DST" -Rule Italy 1970 only - May 31 0:00 1:00 " DST" +Rule Italy 1969 only - Jun 1 0:00 1:00 S +Rule Italy 1970 only - May 31 0:00 1:00 S Rule Italy 1970 only - Sep lastSun 0:00 0 - -Rule Italy 1971 1972 - May Sun>=22 0:00 1:00 " DST" +Rule Italy 1971 1972 - May Sun>=22 0:00 1:00 S Rule Italy 1971 only - Sep lastSun 1:00 0 - Rule Italy 1972 only - Oct 1 0:00 0 - -Rule Italy 1973 only - Jun 3 0:00 1:00 " DST" +Rule Italy 1973 only - Jun 3 0:00 1:00 S Rule Italy 1973 1974 - Sep lastSun 0:00 0 - -Rule Italy 1974 only - May 26 0:00 1:00 " DST" -Rule Italy 1975 only - Jun 1 0:00s 1:00 " DST" +Rule Italy 1974 only - May 26 0:00 1:00 S +Rule Italy 1975 only - Jun 1 0:00s 1:00 S Rule Italy 1975 1977 - Sep lastSun 0:00s 0 - -Rule Italy 1976 only - May 30 0:00s 1:00 " DST" -Rule Italy 1977 1979 - May Sun>=22 0:00s 1:00 " DST" +Rule Italy 1976 only - May 30 0:00s 1:00 S +Rule Italy 1977 1979 - May Sun>=22 0:00s 1:00 S Rule Italy 1978 only - Oct 1 0:00s 0 - Rule Italy 1979 only - Sep 30 0:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Rome 0:49:56 - LMT 1866 Sep 22 - 0:50 - RMT 1893 Nov # Rome Mean Time - 1:00 Italy MET%s 1942 Nov 2 2:00s - 1:00 M-Eur MET%s 1944 Jul - 1:00 Italy MET%s 1980 - 1:00 EU MET%s + 0:49:56 - RMT 1893 Nov # Rome Mean Time + 1:00 Italy CE%sT 1942 Nov 2 2:00s + 1:00 C-Eur CE%sT 1944 Jul + 1:00 Italy CE%sT 1980 + 1:00 EU CE%sT Link Europe/Rome Europe/Vatican Link Europe/Rome Europe/San_Marino # Latvia -# They switched from the Julian to the Gregorian calendar on 1918 Feb 15. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Riga 1:36:24 - LMT 1880 - 1:36 - LST 1918 Apr 15 2:00 - 1:36 M-Eur LST%s 1919 Apr 1 2:00 - 1:36 1:00 "LST DST" 1919 May 22 3:00 - 1:36 - LST 1926 May 11 + 1:36:24 - RMT 1918 Apr 15 2:00 #Riga Mean Time + 1:36:24 1:00 LST 1918 Sep 16 3:00 #Latvian Summer + 1:36:24 - RMT 1919 Apr 1 2:00 + 1:36:24 1:00 LST 1919 May 22 3:00 + 1:36:24 - RMT 1926 May 11 2:00 - EET 1940 Aug 5 - 3:00 - MSK 1941 Jul - 1:00 M-Eur MET%s 1944 Aug 8 - 3:00 Russia MS%s 1991 Mar 31 2:00s - 2:00 1:00 "EET DST" 1991 Sep 29 2:00s - 2:00 M-Eur EET%s -# This may change to `EU' soon. + 3:00 - MOST 1941 Jul # Moscow Time + 1:00 C-Eur CE%sT 1944 Aug 8 + 3:00 Russia MOS%sT 1991 Mar 31 2:00s + 2:00 1:00 EEST 1991 Sep 29 2:00s + 2:00 C-Eur EE%sT # Liechtenstein # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Vaduz 0:38:04 - LMT 1894 Jun - 1:00 - MET 1981 - 1:00 EU MET%s + 1:00 - CET 1981 + 1:00 EU CE%sT # Lithuania -# They switched from the Julian to the Gregorian calendar on 1918 Feb 15. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Vilnius 1:41:16 - LMT 1880 - 1:24 - LST 1917 # Kaunas - 1:36 - LST 1919 Oct 10 - 1:00 - MET 1920 Jul 12 + 1:24:00 - WMT 1917 # Warsaw Mean Time + 1:35:36 - KMT 1919 Oct 10 # Kaunas Mean Time + 1:00 - CET 1920 Jul 12 2:00 - EET 1920 Oct 9 - 1:00 - MET 1940 Aug 3 - 3:00 - MSK 1941 Jun 24 - 1:00 M-Eur MET%s 1944 Aug - 3:00 Russia MS%s 1991 Mar 31 2:00s - 2:00 1:00 "EET DST" 1991 Sep 29 2:00s - 2:00 M-Eur EET%s -# This may change to `EU' soon. + 1:00 - CET 1940 Aug 3 + 3:00 - MOST 1941 Jun 24 # Moscow Time + 1:00 C-Eur CE%sT 1944 Aug + 3:00 Russia MOS%sT 1991 Mar 31 2:00s + 2:00 1:00 EEST 1991 Sep 29 2:00s + 2:00 C-Eur EE%sT # Luxembourg # Whitman disagrees with most of these dates in minor ways; go with Shanks. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Lux 1916 only - May 14 23:00 1:00 " DST" +Rule Lux 1916 only - May 14 23:00 1:00 S Rule Lux 1916 only - Oct 1 1:00 0 - -Rule Lux 1917 only - Apr 28 23:00 1:00 " DST" +Rule Lux 1917 only - Apr 28 23:00 1:00 S Rule Lux 1917 only - Sep 17 1:00 0 - -Rule Lux 1918 only - Apr Mon>=15 2:00s 1:00 " DST" +Rule Lux 1918 only - Apr Mon>=15 2:00s 1:00 S Rule Lux 1918 only - Sep Mon>=15 2:00s 0 - -Rule Lux 1919 only - Mar 1 23:00 1:00 " DST" +Rule Lux 1919 only - Mar 1 23:00 1:00 S Rule Lux 1919 only - Oct 5 3:00 0 - -Rule Lux 1920 only - Feb 14 23:00 1:00 " DST" +Rule Lux 1920 only - Feb 14 23:00 1:00 S Rule Lux 1920 only - Oct 24 2:00 0 - -Rule Lux 1921 only - Mar 14 23:00 1:00 " DST" +Rule Lux 1921 only - Mar 14 23:00 1:00 S Rule Lux 1921 only - Oct 26 2:00 0 - -Rule Lux 1922 only - Mar 25 23:00 1:00 " DST" +Rule Lux 1922 only - Mar 25 23:00 1:00 S Rule Lux 1922 only - Oct Sun>=2 1:00 0 - -Rule Lux 1923 only - Apr 21 23:00 1:00 " DST" +Rule Lux 1923 only - Apr 21 23:00 1:00 S Rule Lux 1923 only - Oct Sun>=2 2:00 0 - -Rule Lux 1924 only - Mar 29 23:00 1:00 " DST" +Rule Lux 1924 only - Mar 29 23:00 1:00 S Rule Lux 1924 1928 - Oct Sun>=2 1:00 0 - -Rule Lux 1925 only - Apr 5 23:00 1:00 " DST" -Rule Lux 1926 only - Apr 17 23:00 1:00 " DST" -Rule Lux 1927 only - Apr 9 23:00 1:00 " DST" -Rule Lux 1928 only - Apr 14 23:00 1:00 " DST" -Rule Lux 1929 only - Apr 20 23:00 1:00 " DST" +Rule Lux 1925 only - Apr 5 23:00 1:00 S +Rule Lux 1926 only - Apr 17 23:00 1:00 S +Rule Lux 1927 only - Apr 9 23:00 1:00 S +Rule Lux 1928 only - Apr 14 23:00 1:00 S +Rule Lux 1929 only - Apr 20 23:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Luxembourg 0:24:36 - LMT 1904 Jun - 1:00 Lux MET%s 1918 Nov 25 - 0:00 Lux WET%s 1929 Oct 6 2:00s - 0:00 Belgium WET%s 1940 May 14 3:00 - 1:00 M-Eur WET%s 1944 Sep 18 3:00 - 1:00 Belgium MET%s 1977 - 1:00 EU MET%s + 1:00 Lux CE%sT 1918 Nov 25 + 0:00 Lux WE%sT 1929 Oct 6 2:00s + 0:00 Belgium WE%sT 1940 May 14 3:00 + 1:00 C-Eur WE%sT 1944 Sep 18 3:00 + 1:00 Belgium CE%sT 1977 + 1:00 EU CE%sT # Macedonia -# They switched from the Julian to the Gregorian calendar on 1918 Mar 18. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Skopje 1:25:44 - LMT 1884 - 1:00 - MET 1941 Apr 18 23:00 - 1:00 M-Eur MET%s 1945 May 8 2:00s - 1:00 1:00 "MET DST" 1945 Sep 16 2:00s - 1:00 - MET 1983 - 1:00 EU MET%s + 1:00 - CET 1941 Apr 18 23:00 + 1:00 C-Eur CE%sT 1945 May 8 2:00s + 1:00 1:00 CEST 1945 Sep 16 2:00s + 1:00 - CET 1983 + 1:00 EU CE%sT # Malta # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Malta 1973 only - Mar 31 0:00s 1:00 " DST" +Rule Malta 1973 only - Mar 31 0:00s 1:00 S Rule Malta 1973 only - Sep 29 0:00s 0 - -Rule Malta 1974 only - Apr 21 0:00s 1:00 " DST" +Rule Malta 1974 only - Apr 21 0:00s 1:00 S Rule Malta 1974 only - Sep 16 0:00s 0 - -Rule Malta 1975 1979 - Apr Sun>=15 2:00 1:00 " DST" +Rule Malta 1975 1979 - Apr Sun>=15 2:00 1:00 S Rule Malta 1975 1980 - Sep Sun>=15 2:00 0 - -Rule Malta 1980 only - Mar 31 2:00 1:00 " DST" +Rule Malta 1980 only - Mar 31 2:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 # Valletta - 1:00 Italy MET%s 1942 Nov 2 2:00s - 1:00 M-Eur MET%s 1945 Apr 2 2:00s - 1:00 Italy MET%s 1973 Mar 31 - 1:00 Malta MET%s 1981 - 1:00 EU MET%s + 1:00 Italy CE%sT 1942 Nov 2 2:00s + 1:00 C-Eur CE%sT 1945 Apr 2 2:00s + 1:00 Italy CE%sT 1973 Mar 31 + 1:00 Malta CE%sT 1981 + 1:00 EU CE%sT # Moldova -# They switched from the Julian to the Gregorian calendar on 1919 Mar 18. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Chisinau 1:55:20 - LMT 1924 May 2 2:00 - EET 1930 Jun 21 - 3:00 Russia MS%s 1991 Mar 31 2:00s - 2:00 1:00 "EET DST" 1991 Sep 29 2:00s - 2:00 M-Eur EET%s -# This may change to `EU' soon. + 3:00 Russia MOS%sT 1991 Mar 31 2:00s # Moscow Time + 2:00 1:00 EEST 1991 Sep 29 2:00s + 2:00 C-Eur EE%sT # Monaco # Shanks gives 0:09 for Paris Mean Time; go with Howse's more precise 0:09:21. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time - 0:00 France WET%s 1945 Sep 16 3:00 - 1:00 France MET%s 1977 - 1:00 EU MET%s + 0:00 France WE%sT 1945 Sep 16 3:00 + 1:00 France CE%sT 1977 + 1:00 EU CE%sT # Netherlands # Howse writes that the Netherlands' railways used GMT between 1892 and 1940, # but for other purposes the Netherlands used Amsterdam mean time. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Shanks gives 1916 May 1 0:00 and 1916 Oct 1 0:00; go with Whitman. -Rule Neth 1916 only - May 1 2:00s 1:00 NST -Rule Neth 1916 only - Oct 2 2:00s 0 AMT +Rule Neth 1916 only - May 1 2:00s 1:00 NST # Netherlands Summer Time +Rule Neth 1916 only - Oct 2 2:00s 0 AMT # Amsterdam Mean Time Rule Neth 1917 only - Apr 16 2:00s 1:00 NST Rule Neth 1917 only - Sep 17 2:00s 0 AMT # Whitman gives 1918 Apr 14, 1918 Oct 31, and 1921 Sep 28; go with Shanks. @@ -1535,7 +1544,7 @@ Rule Neth 1918 1921 - Apr Mon>=1 2:00s 1:00 NST Rule Neth 1918 1921 - Sep Mon>=24 2:00s 0 AMT Rule Neth 1922 only - Mar 26 2:00s 1:00 NST # Whitman gives 1939 Oct 1; go with Shanks. -Rule Neth 1922 1939 - Oct Sun>=2 2:00s 0 AMT +Rule Neth 1922 1936 - Oct Sun>=2 2:00s 0 AMT Rule Neth 1923 only - Jun 1 2:00s 1:00 NST Rule Neth 1924 only - Mar 30 2:00s 1:00 NST # Whitman gives 1925 Apr 5; go with Shanks. @@ -1545,363 +1554,399 @@ Rule Neth 1926 1931 - May 15 2:00s 1:00 NST Rule Neth 1932 only - May 22 2:00s 1:00 NST Rule Neth 1933 1936 - May 15 2:00s 1:00 NST Rule Neth 1937 only - May 22 2:00s 1:00 NST +Rule Neth 1937 only - Jul 1 0:00 1:00 S +Rule Neth 1937 1939 - Oct Sun>=2 2:00s 0 - # Whitman gives 1939 Apr 15 and 1940 Apr 19; go with Shanks. -Rule Neth 1938 1939 - May 15 2:00s 1:00 NST -Rule Neth 1945 only - Apr 2 2:00s 1:00 " DST" +Rule Neth 1938 1939 - May 15 2:00s 1:00 S +Rule Neth 1945 only - Apr 2 2:00s 1:00 S Rule Neth 1945 only - May 20 2:00s 0 - # Before 1937, Shanks says just `0:20'; we use Whitman's more precise figure. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Amsterdam 0:19:28 - LMT 1892 May 0:19:28 Neth %s 1937 Jul - 0:20 Neth %s 1940 May 16 0:40 - 1:00 M-Eur MET%s 1945 Apr 2 2:00 - 1:00 Neth MET%s 1977 - 1:00 EU MET%s + 0:20 Neth NE%sT 1940 May 16 0:40 + 1:00 C-Eur CE%sT 1945 Apr 2 2:00 + 1:00 Neth CE%sT 1977 + 1:00 EU CE%sT # Norway +# Gregorian calendar adopted 1700-03-01. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Whitman gives 1916 May 21 - 1916 Oct 21; go with Shanks. -Rule Norway 1916 only - May 22 1:00 1:00 " DST" +Rule Norway 1916 only - May 22 1:00 1:00 S Rule Norway 1916 only - Sep 30 0:00 0 - # Shanks omits the following transition; go with Whitman. -Rule Norway 1935 only - Aug 11 0:00 1:00 " DST" +Rule Norway 1935 only - Aug 11 0:00 1:00 S # Whitman says DST observed until 1942 Nov 1, then 1943 Mar 29 - Oct 4, # 1944 Apr 3 - Oct 2, and 1945 Apr 1 - Oct 1; go with Shanks after 1940. -Rule Norway 1945 only - Apr 2 2:00s 1:00 " DST" +Rule Norway 1945 only - Apr 2 2:00s 1:00 S Rule Norway 1945 only - Oct 1 2:00s 0 - -Rule Norway 1959 1964 - Mar Sun>=15 2:00s 1:00 " DST" +Rule Norway 1959 1964 - Mar Sun>=15 2:00s 1:00 S Rule Norway 1959 1965 - Sep Sun>=15 2:00s 0 - -Rule Norway 1965 only - Apr 25 2:00s 1:00 " DST" +Rule Norway 1965 only - Apr 25 2:00s 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Oslo 0:43:00 - LMT 1895 - 1:00 Norway MET%s 1940 Aug 10 23:00 - 1:00 M-Eur MET%s 1945 Apr 2 2:00 - 1:00 Norway MET%s 1980 - 1:00 EU MET%s -# Svalbard is like Europe/Oslo. + 1:00 Norway CE%sT 1940 Aug 10 23:00 + 1:00 C-Eur CE%sT 1945 Apr 2 2:00 + 1:00 Norway CE%sT 1980 + 1:00 EU CE%sT +# +# Svalbard +Link Europe/Oslo Arctic/Longyearbyen # +# Jan Mayen # From Whitman: # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Atlantic/Jan_Mayen -1:00 - EGT # Poland -# Austrian and German Poland switched from the Julian to the Gregorian calendar -# on 1582 Oct 15. Russian Poland switched on 1918 Jan 14. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Poland 1918 1919 - Sep 16 2:00s 0 - -Rule Poland 1919 only - Apr 15 2:00s 1:00 " DST" +Rule Poland 1919 only - Apr 15 2:00s 1:00 S # Whitman gives 1944 Nov 30; go with Shanks. Rule Poland 1944 only - Oct 4 2:00 0 - # For 1944-1948 Whitman gives the previous day; go with Shanks. -Rule Poland 1945 only - Apr 29 0:00 1:00 " DST" +Rule Poland 1945 only - Apr 29 0:00 1:00 S Rule Poland 1945 only - Nov 1 0:00 0 - -Rule Poland 1946 only - Apr 14 0:00 1:00 " DST" +Rule Poland 1946 only - Apr 14 0:00 1:00 S Rule Poland 1946 only - Sep 7 0:00 0 - -Rule Poland 1947 only - May 4 0:00 1:00 " DST" +Rule Poland 1947 only - May 4 0:00 1:00 S Rule Poland 1947 1948 - Oct Sun>=1 0:00 0 - -Rule Poland 1948 only - Apr 18 0:00 1:00 " DST" +Rule Poland 1948 only - Apr 18 0:00 1:00 S # Whitman also gives 1949 Apr 9 - 1949 Oct 1; go with Shanks. -Rule Poland 1957 only - Jun 2 1:00s 1:00 " DST" +Rule Poland 1957 only - Jun 2 1:00s 1:00 S Rule Poland 1957 1958 - Sep lastSun 1:00s 0 - -Rule Poland 1958 only - Mar 30 1:00s 1:00 " DST" -Rule Poland 1959 only - May 31 1:00s 1:00 " DST" +Rule Poland 1958 only - Mar 30 1:00s 1:00 S +Rule Poland 1959 only - May 31 1:00s 1:00 S Rule Poland 1959 1961 - Oct Sun>=1 1:00s 0 - -Rule Poland 1960 only - Apr 3 1:00s 1:00 " DST" -Rule Poland 1961 1964 - May Sun>=25 1:00s 1:00 " DST" +Rule Poland 1960 only - Apr 3 1:00s 1:00 S +Rule Poland 1961 1964 - May Sun>=25 1:00s 1:00 S Rule Poland 1962 1964 - Sep lastSun 1:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Warsaw 1:24:00 - LMT 1880 - 1:24 - WMT 1915 Aug 5 # Warsaw Mean Time - 1:00 M-Eur MET%s 1918 Sep 16 3:00 - 2:00 Poland EET%s 1922 Jun - 1:00 Poland MET%s 1940 Jun 23 2:00 - 1:00 M-Eur MET%s 1944 Oct - 1:00 Poland MET%s 1977 Apr 3 1:00 - 1:00 W-Eur MET%s -# This may change to `EU' soon. + 1:24:00 - WMT 1915 Aug 5 # Warsaw Mean Time + 1:00 C-Eur CE%sT 1918 Sep 16 3:00 + 2:00 Poland EE%sT 1922 Jun + 1:00 Poland CE%sT 1940 Jun 23 2:00 + 1:00 C-Eur CE%sT 1944 Oct + 1:00 Poland CE%sT 1977 Apr 3 1:00 + 1:00 W-Eur CE%sT # Portugal +# Gregorian calendar adopted 1582-10-15. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Port 1916 only - Jun 17 23:00 1:00 " DST" +Rule Port 1916 only - Jun 17 23:00 1:00 S # Whitman gives 1916 Oct 31; go with Shanks. Rule Port 1916 only - Nov 1 1:00 0 - -Rule Port 1917 only - Feb 28 23:00s 1:00 " DST" +Rule Port 1917 only - Feb 28 23:00s 1:00 S Rule Port 1917 1921 - Oct 14 23:00s 0 - -Rule Port 1918 only - Mar 1 23:00s 1:00 " DST" -Rule Port 1919 only - Feb 28 23:00s 1:00 " DST" -Rule Port 1920 only - Feb 29 23:00s 1:00 " DST" -Rule Port 1921 only - Feb 28 23:00s 1:00 " DST" -Rule Port 1924 only - Apr 16 23:00s 1:00 " DST" +Rule Port 1918 only - Mar 1 23:00s 1:00 S +Rule Port 1919 only - Feb 28 23:00s 1:00 S +Rule Port 1920 only - Feb 29 23:00s 1:00 S +Rule Port 1921 only - Feb 28 23:00s 1:00 S +Rule Port 1924 only - Apr 16 23:00s 1:00 S Rule Port 1924 only - Oct 14 23:00s 0 - -Rule Port 1926 only - Apr 17 23:00s 1:00 " DST" +Rule Port 1926 only - Apr 17 23:00s 1:00 S Rule Port 1926 1929 - Oct Sat>=1 23:00s 0 - -Rule Port 1927 only - Apr 9 23:00s 1:00 " DST" -Rule Port 1928 only - Apr 14 23:00s 1:00 " DST" -Rule Port 1929 only - Apr 20 23:00s 1:00 " DST" -Rule Port 1931 only - Apr 18 23:00s 1:00 " DST" +Rule Port 1927 only - Apr 9 23:00s 1:00 S +Rule Port 1928 only - Apr 14 23:00s 1:00 S +Rule Port 1929 only - Apr 20 23:00s 1:00 S +Rule Port 1931 only - Apr 18 23:00s 1:00 S # Whitman gives 1931 Oct 8; go with Shanks. Rule Port 1931 1932 - Oct Sat>=1 23:00s 0 - -Rule Port 1932 only - Apr 2 23:00s 1:00 " DST" +Rule Port 1932 only - Apr 2 23:00s 1:00 S # Shanks gives 1934 Apr 4; go with Whitman. -Rule Port 1934 only - Apr 7 23:00s 1:00 " DST" +Rule Port 1934 only - Apr 7 23:00s 1:00 S # Whitman gives 1934 Oct 5; go with Shanks. Rule Port 1934 1938 - Oct Sat>=1 23:00s 0 - # Shanks gives 1935 Apr 30; go with Whitman. -Rule Port 1935 only - Mar 30 23:00s 1:00 " DST" -Rule Port 1936 only - Apr 18 23:00s 1:00 " DST" +Rule Port 1935 only - Mar 30 23:00s 1:00 S +Rule Port 1936 only - Apr 18 23:00s 1:00 S # Whitman gives 1937 Apr 2; go with Shanks. -Rule Port 1937 only - Apr 3 23:00s 1:00 " DST" -Rule Port 1938 only - Mar 26 23:00s 1:00 " DST" -Rule Port 1939 only - Apr 15 23:00s 1:00 " DST" +Rule Port 1937 only - Apr 3 23:00s 1:00 S +Rule Port 1938 only - Mar 26 23:00s 1:00 S +Rule Port 1939 only - Apr 15 23:00s 1:00 S # Whitman gives 1939 Oct 7; go with Shanks. Rule Port 1939 only - Nov 18 23:00s 0 - -Rule Port 1940 only - Feb 24 23:00s 1:00 " DST" +Rule Port 1940 only - Feb 24 23:00s 1:00 S # Shanks gives 1940 Oct 7; go with Whitman. Rule Port 1940 1941 - Oct 5 23:00s 0 - -Rule Port 1941 only - Apr 5 23:00s 1:00 " DST" -Rule Port 1942 1945 - Mar Sat>=8 23:00s 1:00 " DST" -Rule Port 1942 only - Apr 25 22:00s 2:00 " DDST" -Rule Port 1942 only - Aug 15 22:00s 1:00 " DST" +Rule Port 1941 only - Apr 5 23:00s 1:00 S +Rule Port 1942 1945 - Mar Sat>=8 23:00s 1:00 S +Rule Port 1942 only - Apr 25 22:00s 2:00 DS +Rule Port 1942 only - Aug 15 22:00s 1:00 S Rule Port 1942 1945 - Oct Sat>=24 23:00s 0 - -Rule Port 1943 only - Apr 17 22:00s 2:00 " DDST" -Rule Port 1943 1945 - Aug Sat>=25 22:00s 1:00 " DST" -Rule Port 1944 1945 - Apr Sat>=21 22:00s 2:00 " DDST" -Rule Port 1946 only - Apr Sat>=1 23:00s 1:00 " DST" +Rule Port 1943 only - Apr 17 22:00s 2:00 DS +Rule Port 1943 1945 - Aug Sat>=25 22:00s 1:00 S +Rule Port 1944 1945 - Apr Sat>=21 22:00s 2:00 DS +Rule Port 1946 only - Apr Sat>=1 23:00s 1:00 S Rule Port 1946 only - Oct Sat>=1 23:00s 0 - -Rule Port 1947 1949 - Apr Sun>=1 2:00s 1:00 " DST" +Rule Port 1947 1949 - Apr Sun>=1 2:00s 1:00 S Rule Port 1947 1949 - Oct Sun>=1 2:00s 0 - # Shanks says DST was observed in 1950; go with Whitman. # Whitman gives Oct lastSun for 1952 on; go with Shanks. -Rule Port 1951 1965 - Apr Sun>=1 2:00s 1:00 " DST" +Rule Port 1951 1965 - Apr Sun>=1 2:00s 1:00 S Rule Port 1951 1965 - Oct Sun>=1 2:00s 0 - -Rule Port 1977 only - Mar 27 0:00s 1:00 " DST" +Rule Port 1977 only - Mar 27 0:00s 1:00 S Rule Port 1977 only - Sep 25 0:00s 0 - -Rule Port 1978 1979 - Apr Sun>=1 0:00s 1:00 " DST" +Rule Port 1978 1979 - Apr Sun>=1 0:00s 1:00 S Rule Port 1978 only - Oct 1 0:00s 0 - Rule Port 1979 1982 - Sep lastSun 1:00s 0 - -Rule Port 1980 only - Mar lastSun 0:00s 1:00 " DST" -Rule Port 1981 1982 - Mar lastSun 1:00s 1:00 " DST" -Rule Port 1983 only - Mar lastSun 2:00s 1:00 " DST" +Rule Port 1980 only - Mar lastSun 0:00s 1:00 S +Rule Port 1981 1982 - Mar lastSun 1:00s 1:00 S +Rule Port 1983 only - Mar lastSun 2:00s 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Lisbon -0:36:32 - LMT 1884 - -0:37 - LMT 1911 May 24 # Lisbon Mean Time - 0:00 Port WET%s 1966 Apr 3 2:00 - 1:00 - MET 1976 Sep 26 1:00 - 0:00 Port WET%s 1983 Sep 25 1:00s - 0:00 EU WET%s 1992 Sep 27 1:00s + -0:36:32 - LMT 1911 May 24 # Lisbon Mean Time + 0:00 Port WE%sT 1966 Apr 3 2:00 + 1:00 - CET 1976 Sep 26 1:00 + 0:00 Port WE%sT 1983 Sep 25 1:00s # From Rui Pedro Salgueiro <rps@inescca.inescc.pt> (November 12, 1992): # Portugal has recently (September, 27) changed timezone # (from WET to MET or CET) to harmonize with EEC. - 1:00 EU MET%s 1996 Mar 31 1:00u + 0:00 EU WE%sT 1992 Sep 27 1:00s # Martin Bruckmann <martin@ua.pt> (1996-02-29) reports via Peter Ilieve # that Portugal is reverting to 0:00 by not moving its clocks this spring. # The new Prime Minister was fed up with getting up in the dark in the winter. - 0:00 1:00 "WET DST" 1996 Oct 27 1:00u - 0:00 EU WET%s + 1:00 EU CE%sT 1996 Mar 31 1:00u + 0:00 EU WE%sT # We don't know what happened to Madeira or the Azores, # so we'll just use Shanks for now. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Atlantic/Azores -1:42:40 - LMT 1884 # Ponta Delgada -1:55 - HMT 1911 May 24 # Horta Mean Time - -2:00 Port ACT%s 1966 Apr 3 2:00 - -1:00 - ACT 1977 Mar 27 - -1:00 - ACT 1983 Sep 25 1:00s - -1:00 W-Eur ACT%s + -2:00 Port AZO%sT 1966 Apr 3 2:00 # Azores Time + -1:00 Port AZO%sT 1983 Sep 25 1:00s + -1:00 W-Eur AZO%sT Zone Atlantic/Madeira -1:07:36 - LMT 1884 # Funchal -1:08 - FMT 1911 May 24 # Funchal Mean Time - -1:00 Port ACT%s 1966 Apr 3 2:00 - 0:00 - WET 1977 Mar 27 - 0:00 Port WET%s 1983 Sep 25 1:00s - 0:00 EU WET%s + -1:00 Port MAD%sT 1966 Apr 3 2:00 # Madeira Time + 0:00 Port WE%sT 1983 Sep 25 1:00s + 0:00 EU WE%sT # Romania -# Catholic Romania switched from the Julian to the Gregorian calendar on -# on 1919 Mar 18. Greek Orthodox Romania switched on 1920 Mar 18. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Romania 1932 only - May 21 0:00s 1:00 " DST" +Rule Romania 1932 only - May 21 0:00s 1:00 S Rule Romania 1932 1939 - Oct Sun>=1 0:00s 0 - -Rule Romania 1933 1939 - Apr Sun>=2 0:00s 1:00 " DST" -Rule Romania 1979 only - May 27 0:00 1:00 " DST" +Rule Romania 1933 1939 - Apr Sun>=2 0:00s 1:00 S +Rule Romania 1979 only - May 27 0:00 1:00 S Rule Romania 1979 only - Sep lastSun 0:00 0 - -Rule Romania 1980 only - Apr 5 23:00 1:00 " DST" +Rule Romania 1980 only - Apr 5 23:00 1:00 S Rule Romania 1980 only - Sep lastSun 1:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct - 1:44 - BMT 1931 Jul 24 # Bucharest MT - 2:00 Romania EET%s 1981 Mar 29 2:00s - 2:00 M-Eur EET%s -# This may change to `EU' soon. + 1:44:24 - BMT 1931 Jul 24 # Bucharest MT + 2:00 Romania EE%sT 1981 Mar 29 2:00s + 2:00 C-Eur EE%sT # Russia -# From Paul Eggert <eggert@twinsun.com> (May 28, 1994): -# Moscow and Novosibirsk time zone names, and Moscow rules after 1991, -# are from Andrew A. Chernov <ache@astral.msk.su>. -# I invented the other time zone names, and (unless otherwise specified) +# 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 Paul Eggert <eggert@twinsun.com> (1996-09-03): +# Moscow rules after 1991 are from Andrew A. Chernov <ache@astral.msk.su>. +# I invented the time zone names, and (unless otherwise specified) # guessed what happened after 1991; the clocks were chaotic, and we know little. # The rest is from Shanks. # -# From Shanks (1991): -# Western Russia switched from the Julian to the Gregorian calendar -# on 1918 Jan 14. Eastern Russia switched on 1920 Mar 18. -# In 1929 the Soviet Union instituted a 5 day week; in 1932 it instituted -# a 6 day week; on 1940 Jun 27 it returned to the Gregorian week. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Moscow 2:30:20 - LMT 1880 - 2:31 Russia LST%s 1919 Jul 1 2:00 - 3:00 Russia MS%s 1922 Oct + 2:30:20 Russia %s 1919 Jul 1 2:00 + 3:00 Russia MOS%sT 1922 Oct # Moscow TIme 2:00 - EET 1930 Jun 21 - 3:00 Russia MS%s 1991 Mar 31 2:00s - 2:00 1:00 "EET DST" 1991 Sep 29 2:00s + 3:00 Russia MOS%sT 1991 Mar 31 2:00s + 2:00 1:00 EEST 1991 Sep 29 2:00s 2:00 - EET 1992 Jan 19 2:00s - 3:00 Russia MS%s + 3:00 Russia MOS%sT Zone Europe/Kuybyshev 3:20:36 - LMT 1924 May 2 - 3:00 - KSK 1957 Mar - 4:00 Russia KS%s 1991 Mar 31 2:00s - 3:00 1:00 KSD 1991 Sep 29 2:00s - 3:00 - KSK 1992 Jan 19 2:00s - 4:00 Russia KS%s + 3:00 - KUYT 1957 Mar # Kuybyshev Time + 4:00 Russia KUY%sT 1991 Mar 31 2:00s + 3:00 1:00 KUYST 1991 Sep 29 2:00s + 3:00 - KUYT 1992 Jan 19 2:00s + 4:00 Russia KUY%sT Zone Asia/Yekaterinburg 4:02:34 - LMT 1924 May 2 - 4:00 - SSK 1957 Mar - 5:00 Russia SS%s 1991 Mar 31 2:00s - 4:00 1:00 SSD 1991 Sep 29 2:00s - 4:00 - SSK 1992 Jan 19 2:00s - 5:00 Russia ES%s # name change from Sverdlovsk + 4:00 - SVET 1957 Mar # Sverdlovsk Time + 5:00 Russia SVE%sT 1991 Mar 31 2:00s + 4:00 1:00 SVEST 1991 Sep 29 2:00s + 4:00 - SVET 1992 Jan 19 2:00s + 5:00 Russia YEK%sT # Yekaterinburg Time Zone Asia/Omsk 4:53:36 - LMT 1924 May 2 - 5:00 - OSK 1957 Mar - 6:00 Russia OS%s 1991 Mar 31 2:00s - 5:00 1:00 OSD 1991 Sep 29 2:00s - 5:00 - OSK 1992 Jan 19 2:00s - 6:00 Russia OS%s + 5:00 - OMST 1957 Mar # Omsk Time + 6:00 Russia OMS%sT 1991 Mar 31 2:00s + 5:00 1:00 OMSST 1991 Sep 29 2:00s + 5:00 - OMST 1992 Jan 19 2:00s + 6:00 Russia OMS%sT # From Stanislaw A. Kuzikowski <S.A.Kuz@iae.nsk.su> (June 29, 1994): # But now it is some months since Novosibirsk is 3 hours ahead of Moscow! # I do not know why they have decided to make this change; # 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 - NSK 1957 Mar - 7:00 Russia NS%s 1991 Mar 31 2:00s - 6:00 1:00 NSD 1991 Sep 29 2:00s - 6:00 - NSK 1992 Jan 19 2:00s - 7:00 Russia NS%s 1994 Mar 27 2:00s - 6:00 1:00 NSD 1994 Sep 25 2:00s - 6:00 Russia NS%s + 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 + 7:00 Russia NOV%sT 1994 Mar 27 2:00s + 6:00 1:00 NOVST 1994 Sep 25 2:00s + 6:00 Russia NOV%sT Zone Asia/Krasnoyarsk 6:11:20 - LMT 1924 May 2 - 6:00 - KRSK 1957 Mar - 7:00 Russia KRS%s 1991 Mar 31 2:00s - 6:00 1:00 KRSD 1991 Sep 29 2:00s - 6:00 - KRSK 1992 Jan 19 2:00s - 7:00 Russia KRS%s + 6:00 - KRAT 1957 Mar # Krasnoyarsk Time + 7:00 Russia KRA%sT 1991 Mar 31 2:00s + 6:00 1:00 KRAST 1991 Sep 29 2:00s + 6:00 - KRAT 1992 Jan 19 2:00s + 7:00 Russia KRA%sT Zone Asia/Irkutsk 6:57:20 - LMT 1880 - 6:57 - LST 1924 May 2 - 7:00 - ISK 1957 Mar - 8:00 Russia IS%s 1991 Mar 31 2:00s - 7:00 1:00 ISD 1991 Sep 29 2:00s - 7:00 - ISK 1992 Jan 19 2:00s - 8:00 Russia IS%s + 6:57:20 - IMT 1924 May 2 # Irkutsk Mean Time + 7:00 - IRKT 1957 Mar # Irkutsk Time + 8:00 Russia IRK%sT 1991 Mar 31 2:00s + 7:00 1:00 IRKST 1991 Sep 29 2:00s + 7:00 - IRKT 1992 Jan 19 2:00s + 8:00 Russia IRK%sT Zone Asia/Yakutsk 8:38:40 - LMT 1924 May 2 - 8:00 - YSK 1957 Mar - 9:00 Russia YS%s 1991 Mar 31 2:00s - 8:00 1:00 YSD 1991 Sep 29 2:00s - 8:00 - YSK 1992 Jan 19 2:00s - 9:00 Russia YS%s + 8:00 - YAKT 1957 Mar # Yakutsk Time + 9:00 Russia YAK%sT 1991 Mar 31 2:00s + 8:00 1:00 YAKST 1991 Sep 29 2:00s + 8:00 - YAKT 1992 Jan 19 2:00s + 9:00 Russia YAK%sT Zone Asia/Vladivostok 8:47:44 - LMT 1880 - 8:48 - LST 1924 May 2 - 9:00 - VSK 1957 Mar - 10:00 Russia VS%s 1991 Mar 31 2:00s - 9:00 1:00 VSD 1991 Sep 29 2:00s - 9:00 - VSK 1992 Jan 19 2:00s - 10:00 Russia VS%s + 8:47:44 - VMT 1924 May 2 # Vladivostok MT + 9:00 - VLAT 1957 Mar # Vladivostok Time + 10:00 Russia VLA%sT 1991 Mar 31 2:00s + 9:00 1:00 VLAST 1991 Sep 29 2:00s + 9:00 - VLAT 1992 Jan 19 2:00s + 10:00 Russia VLA%sT Zone Asia/Magadan 10:03:12 - LMT 1924 May 2 - 10:00 - MSK 1957 Mar - 11:00 Russia MS%s 1991 Mar 31 2:00s - 10:00 1:00 MSD 1991 Sep 29 2:00s - 10:00 - MSK 1992 Jan 19 2:00s - 11:00 Russia MS%s + 10:00 - MAGT 1957 Mar # Magadan Time + 11:00 Russia MAG%sT 1991 Mar 31 2:00s + 10:00 1:00 MAGST 1991 Sep 29 2:00s + 10:00 - MAGT 1992 Jan 19 2:00s + 11:00 Russia MAG%sT # This name should be Asia/Petropavlovsk-Kamchatski, but that's too long. Zone Asia/Kamchatka 10:34:36 - LMT 1924 May 2 - 11:00 - PSK 1957 Mar - 12:00 Russia PS%s 1991 Mar 31 2:00s - 11:00 1:00 PSD 1991 Sep 29 2:00s - 11:00 - PSK 1992 Jan 19 2:00s - 12:00 Russia PS%s + 11:00 - PETT 1957 Mar # P-K Time + 12:00 Russia PET%sT 1991 Mar 31 2:00s + 11:00 1:00 PETST 1991 Sep 29 2:00s + 11:00 - PETT 1992 Jan 19 2:00s + 12:00 Russia PET%sT Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2 - 12:00 - ASK 1957 Mar - 13:00 Russia AS%s 1991 Mar 31 2:00s - 12:00 1:00 ASD 1991 Sep 29 2:00s - 12:00 - ASK 1992 Jan 19 2:00s - 13:00 Russia AS%s + 12:00 - ANAT 1957 Mar # Anadyr Time + 13:00 Russia ANA%sT 1991 Mar 31 2:00s + 12:00 1:00 ANAST 1991 Sep 29 2:00s + 12:00 - ANAT 1992 Jan 19 2:00s + 13:00 Russia ANA%sT # Slovakia Link Europe/Prague Europe/Bratislava # Slovenia -# They switched from the Julian to the Gregorian calendar on 1918 Mar 18. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Ljubljana 0:58:04 - LMT 1884 - 1:00 - MET 1941 Apr 18 23:00 - 1:00 M-Eur MET%s 1945 May 8 2:00s - 1:00 1:00 "MET DST" 1945 Sep 16 2:00s - 1:00 - MET 1983 - 1:00 EU MET%s + 1:00 - CET 1941 Apr 18 23:00 + 1:00 C-Eur CE%sT 1945 May 8 2:00s + 1:00 1:00 CEST 1945 Sep 16 2:00s + 1:00 - CET 1983 + 1:00 EU CE%sT # Spain +# Gregorian calendar adopted 1582-10-15. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # For 1917-1919 Whitman gives Apr Sat>=1 - Oct Sat>=1; go with Shanks. -Rule Spain 1917 only - May 5 23:00s 1:00 " DST" +Rule Spain 1917 only - May 5 23:00s 1:00 S Rule Spain 1917 1919 - Oct 6 23:00s 0 - -Rule Spain 1918 only - Apr 15 23:00s 1:00 " DST" -Rule Spain 1919 only - Apr 5 23:00s 1:00 " DST" +Rule Spain 1918 only - Apr 15 23:00s 1:00 S +Rule Spain 1919 only - Apr 5 23:00s 1:00 S # Whitman gives 1921 Feb 28 - Oct 14; go with Shanks. -Rule Spain 1924 only - Apr 16 23:00s 1:00 " DST" +Rule Spain 1924 only - Apr 16 23:00s 1:00 S # Whitman gives 1924 Oct 14; go with Shanks. Rule Spain 1924 only - Oct 4 23:00s 0 - -Rule Spain 1926 only - Apr 17 23:00s 1:00 " DST" +Rule Spain 1926 only - Apr 17 23:00s 1:00 S # Whitman says no DST in 1929; go with Shanks. Rule Spain 1926 1929 - Oct Sat>=1 23:00s 0 - -Rule Spain 1927 only - Apr 9 23:00s 1:00 " DST" -Rule Spain 1928 only - Apr 14 23:00s 1:00 " DST" -Rule Spain 1929 only - Apr 20 23:00s 1:00 " DST" +Rule Spain 1927 only - Apr 9 23:00s 1:00 S +Rule Spain 1928 only - Apr 14 23:00s 1:00 S +Rule Spain 1929 only - Apr 20 23:00s 1:00 S # Whitman gives 1937 Jun 16, 1938 Apr 16, 1940 Apr 13; go with Shanks. -Rule Spain 1937 only - May 22 23:00s 1:00 " DST" +Rule Spain 1937 only - May 22 23:00s 1:00 S Rule Spain 1937 1939 - Oct Sat>=1 23:00s 0 - -Rule Spain 1938 only - Mar 22 23:00s 1:00 " DST" -Rule Spain 1939 only - Apr 15 23:00s 1:00 " DST" -Rule Spain 1940 only - Mar 16 23:00s 1:00 " DST" +Rule Spain 1938 only - Mar 22 23:00s 1:00 S +Rule Spain 1939 only - Apr 15 23:00s 1:00 S +Rule Spain 1940 only - Mar 16 23:00s 1:00 S # Whitman says no DST 1942-1945; go with Shanks. -Rule Spain 1942 only - May 2 22:00s 2:00 " DDST" -Rule Spain 1942 only - Sep 1 22:00s 1:00 " DST" -Rule Spain 1943 1946 - Apr Sat>=13 22:00s 2:00 " DDST" -Rule Spain 1943 only - Oct 3 22:00s 1:00 " DST" -Rule Spain 1944 only - Oct 10 22:00s 1:00 " DST" -Rule Spain 1945 only - Sep 30 1:00 1:00 " DST" +Rule Spain 1942 only - May 2 22:00s 2:00 DS +Rule Spain 1942 only - Sep 1 22:00s 1:00 S +Rule Spain 1943 1946 - Apr Sat>=13 22:00s 2:00 DS +Rule Spain 1943 only - Oct 3 22:00s 1:00 S +Rule Spain 1944 only - Oct 10 22:00s 1:00 S +Rule Spain 1945 only - Sep 30 1:00 1:00 S Rule Spain 1946 only - Sep 30 0:00 0 - -Rule Spain 1949 only - Apr 30 23:00 1:00 " DST" +Rule Spain 1949 only - Apr 30 23:00 1:00 S Rule Spain 1949 only - Sep 30 1:00 0 - -Rule Spain 1974 1975 - Apr Sat>=13 23:00 1:00 " DST" +Rule Spain 1974 1975 - Apr Sat>=13 23:00 1:00 S Rule Spain 1974 1975 - Oct Sun>=1 1:00 0 - -Rule Spain 1976 only - Mar 27 23:00 1:00 " DST" +Rule Spain 1976 only - Mar 27 23:00 1:00 S Rule Spain 1976 1977 - Sep lastSun 1:00 0 - -Rule Spain 1977 1978 - Apr 2 23:00 1:00 " DST" +Rule Spain 1977 1978 - Apr 2 23:00 1:00 S Rule Spain 1978 only - Oct 1 1:00 0 - +# The following rules are copied from Morocco from 1967 through 1978. +Rule SpainAfrica 1967 only - Jun 3 12:00 1:00 S +Rule SpainAfrica 1967 only - Oct 1 0:00 0 - +Rule SpainAfrica 1974 only - Jun 24 0:00 1:00 S +Rule SpainAfrica 1974 only - Sep 1 0:00 0 - +Rule SpainAfrica 1976 1977 - May 1 0:00 1:00 S +Rule SpainAfrica 1976 only - Aug 1 0:00 0 - +Rule SpainAfrica 1977 only - Sep 28 0:00 0 - +Rule SpainAfrica 1978 only - Jun 1 0:00 1:00 S +Rule SpainAfrica 1978 only - Aug 4 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Madrid -0:14:44 - LMT 1901 - 0:00 Spain WET%s 1946 Sep 30 - 1:00 Spain MET%s 1979 - 1:00 EU MET%s + 0:00 Spain WE%sT 1946 Sep 30 + 1:00 Spain CE%sT 1979 + 1:00 EU CE%sT +Zone Africa/Ceuta -0:21:16 - LMT 1901 + 0:00 - WET 1918 May 6 23:00 + 0:00 1:00 WEST 1918 Oct 7 23:00 + 0:00 - WET 1924 + 0:00 Spain WE%sT 1929 + 0:00 SpainAfrica WE%sT 1984 Mar 16 + 1:00 - CET 1986 + 1:00 EU CE%sT Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C. - -1:00 - ACT 1946 Sep 30 1:00 + -1:00 - CANT 1946 Sep 30 1:00 # Canaries Time 0:00 - WET 1980 Apr 6 0:00s - 0:00 1:00 "WET DST" 1980 Sep 28 0:00s - 0:00 EU WET%s + 0:00 1:00 WEST 1980 Sep 28 0:00s + 0:00 EU WE%sT # Sweden + +# From: msb@sq.com (Mark Brader) <URL:news:1996Jul6.012937.29190@sq.com>: +# +# In 1700, Denmark made the transition from Julian to Gregorian. Sweden +# decided to *start* a transition in 1700 as well, but rather than have one of +# those unsightly calendar gaps :-), they simply decreed that the next leap +# year after 1696 would be in 1744 -- putting the whole country on a calendar +# different from both Julian and Gregorian for a period of 40 years. +# +# However, in 1704 something went wrong and the plan was not carried through; +# they did, after all, have a leap year that year. And one in 1708. In 1712 +# they gave it up and went back to Julian, putting 30 days in February that +# year!... +# +# Then in 1753, Sweden made the transition to Gregorian in the usual manner, +# getting there only 13 years behind the original schedule. +# +# (A previous posting of this story was challenged, and Swedish readers +# produced the following references to support it: "Tiderakning och historia" +# by Natanael Beckman (1924) and "Tid, en bok om tiderakning och +# kalendervasen" by Lars-Olof Lode'n (no date was given).) + # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Stockholm 1:12:12 - LMT 1878 May 31 - 1:12 - SMT 1900 Jan 1 1:00 # Stockholm MT - 1:00 - MET 1916 Apr 14 23:00s - 1:00 1:00 "MET DST" 1916 Sep 30 23:00s - 1:00 - MET 1980 - 1:00 EU MET%s + 1:12:12 - SMT 1900 Jan 1 1:00 # Stockholm MT + 1:00 - CET 1916 Apr 14 23:00s + 1:00 1:00 CEST 1916 Sep 30 23:00s + 1:00 - CET 1980 + 1:00 EU CE%sT # Switzerland # From Howse (1988), p 82: @@ -1910,121 +1955,130 @@ Zone Europe/Stockholm 1:12:12 - LMT 1878 May 31 # mean time in preference to apparent time -- Geneva from 1780 .... # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # From Whitman (who writes ``Midnight?''): -Rule Swiss 1940 only - Nov 2 0:00 1:00 " DST" +Rule Swiss 1940 only - Nov 2 0:00 1:00 S Rule Swiss 1940 only - Dec 31 0:00 0 - # From Shanks (1991): -Rule Swiss 1941 1942 - May Sun>=1 2:00 1:00 " DST" +Rule Swiss 1941 1942 - May Sun>=1 2:00 1:00 S Rule Swiss 1941 1942 - Oct Sun>=1 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12 - 0:30 - SST 1894 Jun # Swiss Standard Time - 1:00 Swiss MET%s 1981 - 1:00 EU MET%s + 0:29:44 - BMT 1894 Jun # Bern Mean Time + 1:00 Swiss CE%sT 1981 + 1:00 EU CE%sT # Turkey -# European Turkey switched to the Gregorian calendar in 1908. -# Asian Turkey switched in 1914. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Turkey 1916 only - May 1 0:00 1:00 " DST" +Rule Turkey 1916 only - May 1 0:00 1:00 S Rule Turkey 1916 only - Oct 1 0:00 0 - -Rule Turkey 1920 only - Mar 28 0:00 1:00 " DST" +Rule Turkey 1920 only - Mar 28 0:00 1:00 S Rule Turkey 1920 only - Oct 25 0:00 0 - -Rule Turkey 1921 only - Apr 3 0:00 1:00 " DST" +Rule Turkey 1921 only - Apr 3 0:00 1:00 S Rule Turkey 1921 only - Oct 3 0:00 0 - -Rule Turkey 1922 only - Mar 26 0:00 1:00 " DST" +Rule Turkey 1922 only - Mar 26 0:00 1:00 S Rule Turkey 1922 only - Oct 8 0:00 0 - # Whitman gives 1923 Apr 28 - Sep 16 and no DST in 1924-1925; go with Shanks. -Rule Turkey 1924 only - May 13 0:00 1:00 " DST" +Rule Turkey 1924 only - May 13 0:00 1:00 S Rule Turkey 1924 1925 - Oct 1 0:00 0 - -Rule Turkey 1925 only - May 1 0:00 1:00 " DST" +Rule Turkey 1925 only - May 1 0:00 1:00 S # Shanks omits the first two transitions in 1940; go with Whitman. -Rule Turkey 1940 only - Jun 30 0:00 1:00 " DST" +Rule Turkey 1940 only - Jun 30 0:00 1:00 S Rule Turkey 1940 only - Oct 5 0:00 0 - -Rule Turkey 1940 only - Dec 1 0:00 1:00 " DST" +Rule Turkey 1940 only - Dec 1 0:00 1:00 S Rule Turkey 1941 only - Sep 21 0:00 0 - -Rule Turkey 1942 only - Apr 1 0:00 1:00 " DST" +Rule Turkey 1942 only - Apr 1 0:00 1:00 S # Whitman omits the next two transition and gives 1945 Oct 1; go with Shanks. Rule Turkey 1942 only - Nov 1 0:00 0 - -Rule Turkey 1945 only - Apr 2 0:00 1:00 " DST" +Rule Turkey 1945 only - Apr 2 0:00 1:00 S Rule Turkey 1945 only - Oct 8 0:00 0 - -Rule Turkey 1946 only - Jun 1 0:00 1:00 " DST" +Rule Turkey 1946 only - Jun 1 0:00 1:00 S Rule Turkey 1946 only - Oct 1 0:00 0 - -Rule Turkey 1947 1948 - Apr Sun>=16 0:00 1:00 " DST" +Rule Turkey 1947 1948 - Apr Sun>=16 0:00 1:00 S Rule Turkey 1947 1950 - Oct Sun>=2 0:00 0 - -Rule Turkey 1949 only - Apr 10 0:00 1:00 " DST" -Rule Turkey 1950 only - Apr 19 0:00 1:00 " DST" -Rule Turkey 1951 only - Apr 22 0:00 1:00 " DST" +Rule Turkey 1949 only - Apr 10 0:00 1:00 S +Rule Turkey 1950 only - Apr 19 0:00 1:00 S +Rule Turkey 1951 only - Apr 22 0:00 1:00 S Rule Turkey 1951 only - Oct 8 0:00 0 - -Rule Turkey 1962 only - Jul 15 0:00 1:00 " DST" +Rule Turkey 1962 only - Jul 15 0:00 1:00 S Rule Turkey 1962 only - Oct 8 0:00 0 - -Rule Turkey 1964 only - May 15 0:00 1:00 " DST" +Rule Turkey 1964 only - May 15 0:00 1:00 S Rule Turkey 1964 only - Oct 1 0:00 0 - -Rule Turkey 1970 1972 - May Sun>=2 0:00 1:00 " DST" +Rule Turkey 1970 1972 - May Sun>=2 0:00 1:00 S Rule Turkey 1970 1972 - Oct Sun>=2 0:00 0 - -Rule Turkey 1973 only - Jun 3 1:00 1:00 " DST" +Rule Turkey 1973 only - Jun 3 1:00 1:00 S Rule Turkey 1973 only - Nov 4 3:00 0 - -Rule Turkey 1974 only - Mar 31 2:00 1:00 " DST" +Rule Turkey 1974 only - Mar 31 2:00 1:00 S Rule Turkey 1974 only - Nov 3 5:00 0 - -Rule Turkey 1975 only - Mar 30 0:00 1:00 " DST" +Rule Turkey 1975 only - Mar 30 0:00 1:00 S Rule Turkey 1975 1976 - Oct lastSun 0:00 0 - -Rule Turkey 1976 only - Jun 1 0:00 1:00 " DST" -Rule Turkey 1977 1978 - Apr Sun>=1 0:00 1:00 " DST" +Rule Turkey 1976 only - Jun 1 0:00 1:00 S +Rule Turkey 1977 1978 - Apr Sun>=1 0:00 1:00 S Rule Turkey 1977 only - Oct 16 0:00 0 - -Rule Turkey 1979 1980 - Apr Sun>=1 3:00 1:00 " DST" +Rule Turkey 1979 1980 - Apr Sun>=1 3:00 1:00 S Rule Turkey 1979 1982 - Oct Mon>=11 0:00 0 - -Rule Turkey 1981 1982 - Mar lastSun 3:00 1:00 " DST" -Rule Turkey 1983 only - Jul 31 0:00 1:00 " DST" +Rule Turkey 1981 1982 - Mar lastSun 3:00 1:00 S +Rule Turkey 1983 only - Jul 31 0:00 1:00 S Rule Turkey 1983 only - Oct 2 0:00 0 - -Rule Turkey 1985 only - Apr 20 0:00 1:00 " DST" +Rule Turkey 1985 only - Apr 20 0:00 1:00 S Rule Turkey 1985 only - Sep 28 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Istanbul 1:55:52 - LMT 1880 - 1:57 - OMT 1910 Oct # Ottoman Mean Time - 2:00 Turkey EET%s 1978 Oct 15 - 3:00 Turkey TUR%s 1985 Apr 20 - 2:00 Turkey EET%s 1986 - 2:00 M-Eur EET%s -# This may change to `EU' soon. + 1:56:56 - IMT 1910 Oct # Istanbul Mean Time? + 2:00 Turkey EE%sT 1978 Oct 15 + 3:00 Turkey TR%sT 1985 Apr 20 # Turkey Time + 2:00 Turkey EE%sT 1986 + 2:00 C-Eur EE%sT Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. # Ukraine # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Ukraine 1919 only - Jul 1 2:00 1:00 " DST" -Rule Ukraine 1919 only - Aug 16 0:00 0 - -Rule Ukraine 1921 only - Feb 14 23:00 1:00 " DST" -Rule Ukraine 1921 only - Mar 21 23:00 2:00 " DDST" -Rule Ukraine 1921 only - Sep 1 0:00 1:00 " DST" -Rule Ukraine 1921 only - Oct 1 0:00 0 - +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 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 +Rule Ukraine 1919 only - Jul 1 2:00 1:00 UST +Rule Ukraine 1919 only - Aug 16 0:00 0 KMT +Rule Ukraine 1921 only - Feb 14 23:00 1:00 UST +Rule Ukraine 1921 only - Mar 21 23:00 2:00 UDST +Rule Ukraine 1921 only - Sep 1 0:00 1:00 UST +Rule Ukraine 1921 only - Oct 1 0:00 0 KMT +Rule Crimea 1917 only - Jul 1 23:00 1:00 CST # Crimean Summer Time +Rule Crimea 1917 only - Dec 28 0:00 0 NMT # Nikolayev Mean Time +Rule Crimea 1918 only - May 31 22:00 2:00 CDST # Crimean Double Summer Time +Rule Crimea 1918 only - Sep 17 0:00 1:00 CST +Rule Crimea 1919 only - May 31 23:00 2:00 CDST +Rule Crimea 1919 only - Jul 1 2:00 1:00 CST +Rule Crimea 1919 only - Aug 16 0:00 0 NMT +Rule Crimea 1921 only - Feb 14 23:00 1:00 CST +Rule Crimea 1921 only - Mar 21 23:00 2:00 CDST +Rule Crimea 1921 only - Sep 1 0:00 1:00 CST +Rule Crimea 1921 only - Oct 1 0:00 0 NMT # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Kiev 2:02:04 - LMT 1880 - 2:02 Russia LST%s 1919 Jul 1 2:00 - 2:02 Ukraine LST%s 1924 May 2 + 2:02:04 Ukraine %s 1924 May 2 2:00 - EET 1930 Jun 21 - 3:00 Russia MS%s 1990 Jul 17 - 2:00 M-Eur EET%s -# This may change to `EU' soon. + 3:00 Russia MOS%sT 1990 Jul 17 # Moscow Time + 2:00 C-Eur EE%sT Zone Europe/Simferopol 2:16:24 - LMT 1880 - 2:08 Russia LST%s 1919 Jul 1 2:00 - 2:08 Ukraine LST%s 1924 May 2 + 2:08:00 Crimea %s 1924 May 2 2:00 - EET 1930 Jun 21 - 3:00 Russia MS%s 1991 Mar 31 2:00s - 2:00 1:00 "EET DST" 1991 Sep 29 2:00s + 3:00 Russia MOS%sT 1991 Mar 31 2:00s + 2:00 1:00 EEST 1991 Sep 29 2:00s # From Paul Eggert <eggert@twinsun.com> (May 28, 1994): # Today's _Economist_ (p 45) reports that Crimea switched # from Kiev to Moscow time sometime after the January elections. # For now, we'll guess that there was a 2-hour leap forward on March 27. - 2:00 M-Eur EET%s 1994 Mar 27 2:00s - 3:00 Russia MS%s + 2:00 C-Eur EE%sT 1994 Mar 27 2:00s + 3:00 Russia MOS%sT # Yugoslavia -# They switched from the Julian to the Gregorian calendar on 1918 Mar 18. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Belgrade 1:22:00 - LMT 1884 - 1:00 - MET 1941 Apr 18 23:00 - 1:00 M-Eur MET%s 1945 May 8 2:00s - 1:00 1:00 "MET DST" 1945 Sep 16 2:00s - 1:00 - MET 1983 - 1:00 EU MET%s + 1:00 - CET 1941 Apr 18 23:00 + 1:00 C-Eur CE%sT 1945 May 8 2:00s + 1:00 1:00 CEST 1945 Sep 16 2:00s + 1:00 - CET 1983 + 1:00 EU CE%sT ############################################################################### diff --git a/time/northamerica b/time/northamerica index 5771981..1d8bd9e 100644 --- a/time/northamerica +++ b/time/northamerica @@ -1,4 +1,4 @@ -# @(#)northamerica 7.26 +# @(#)northamerica 7.27 # also includes Central America and the Caribbean # This data is by no means authoritative; if you think you know better, @@ -202,9 +202,9 @@ Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:00 # # From Paul Eggert (1995-12-19): # Howse writes that Alaska switched from the Julian to the Gregorian calendar, -# and from east-of-GMT to west-of-GMT days, in 1867 when the US purchased it -# from Russia. We omit this transition, since we can't represent changes -# from Julian to Gregorian. +# and from east-of-GMT to west-of-GMT days, when the US bought it from Russia. +# This was on 1867-10-18. We omit this transition, since we can't represent +# changes from Julian to Gregorian. # # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Juneau -8:57:41 - LMT 1900 Aug 20 12:00 @@ -472,12 +472,9 @@ Link Pacific/Honolulu HST # Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which # I found in the UCLA library. # -# I invented the abbreviation SPST for St Pierre Standard Time; SPDT likewise. -# Corrections are welcome! -# # See the `europe' file for Greenland. # -# See the `africa' file for Zone naming conventions. +# See the `africa' file for time zone naming and abbreviation conventions. # Canada @@ -839,7 +836,6 @@ Rule NT_YK 1919 only - May 25 2:00 1:00 D Rule NT_YK 1919 only - Nov 1 0:00 0 S Rule NT_YK 1942 only - Feb 9 2:00 1:00 D Rule NT_YK 1945 only - Sep 30 2:00 0 S -# 0:00 ?? Rule NT_YK 1965 only - Apr lastSun 0:00 2:00 DD Rule NT_YK 1965 only - Oct lastSun 2:00 0 S Rule NT_YK 1980 1986 - Apr lastSun 2:00 1:00 D @@ -1158,7 +1154,7 @@ Zone America/El_Salvador -5:56:48 - LMT 1921 # San Salvador # Grenada # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Grenada -4:07:00 - LMT 1911 Jul +Zone America/Grenada -4:07:00 - LMT 1911 Jul # St George's -4:00 - AST # Guadeloupe @@ -1263,7 +1259,7 @@ Zone America/St_Lucia -4:04:00 - LMT 1890 # Castries # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre -4:00 - AST 1980 May - -3:00 Mont SP%sT + -3:00 Mont PM%sT # Pierre & Miquelon Time # St Vincent and the Grenadines # Zone NAME GMTOFF RULES FORMAT [UNTIL] diff --git a/time/southamerica b/time/southamerica index c3c5c99..cb5b34b 100644 --- a/time/southamerica +++ b/time/southamerica @@ -1,33 +1,35 @@ -# @(#)southamerica 7.12 +# @(#)southamerica 7.13 # 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 # tz@elsie.nci.nih.gov for general use in the future). -# From Paul Eggert <eggert@twinsun.com> (November 18, 1993): +# From Paul Eggert <eggert@twinsun.com> (1996-09-03): # A good source for time zone historical data outside the U.S. is # Thomas G. Shanks, The International Atlas (3rd edition), # San Diego: ACS Publications, Inc. (1991). # Except where otherwise noted, it is the source for the data below. # -# I invented the abbreviations marked `*' in the following table; -# the rest are from earlier versions of this file, or from other sources. -# Some of these are just plausible excuses for common English abbreviations. +# The following abbreviations are used in this file. # Corrections are welcome! # std dst # LMT Local Mean Time # -2:00 FST FDT Fernando de Noronha -# -3:00 EST EDT Eastern South America (conflicts with -5:00) -# -3:00 ARST ARDT Argentina -# -4:00 AST ADT Andes*, Antilles*, Asuncion*, Atlantic -# -4:00 CST CDT Chile (conflicts with -6:00) +# -3:00 EST EDT Eastern Brazil # -4:00 WST WDT Western Brazil -# -5:00 AST ADT Acre (conflicts with -4:00) -# -5:00 EST EDT Eastern, Ecuador* -# -6:00 CST CDT Archipelago of Columbus*, Central -# -7:00 MST MDT Mataveri*, Mountain +# -4:00 AST ADT Atlantic +# -5:00 AST ADT Acre # -# See the `africa' file for Zone naming conventions. +# See the `africa' file for time zone naming and abbreviation conventions. +# Earlier editions of these tables used the North American style (e.g. ARST and +# ARDT for Argentine Standard and Daylight Time), but the following quote +# suggests that it's better to use European style (e.g. ART and ARST). +# I suggest the use of _Summer time_ instead of the more cumbersome +# _daylight-saving time_. _Summer time_ seems to be in general use +# in Europe and South America. +# -- E O Cutler, _New York Times_ (1937-02-14), quoted in +# H L Mencken, _The American Language: Supplement I_ (1960), p 466 + # From Guy Harris: # From Official Airline Guide - Worldwide Edition (1987). Countries not @@ -55,35 +57,35 @@ # AR was chosen because they are the ISO letters that represent Argentina. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Arg 1930 only - Dec 1 0:00 1:00 D -Rule Arg 1931 only - Apr 1 0:00 0 S -Rule Arg 1931 only - Oct 15 0:00 1:00 D -Rule Arg 1932 1940 - Mar 1 0:00 0 S -Rule Arg 1932 1939 - Nov 1 0:00 1:00 D -Rule Arg 1940 only - Jul 1 0:00 1:00 D -Rule Arg 1941 only - Jun 15 0:00 0 S -Rule Arg 1941 only - Oct 15 0:00 1:00 D -Rule Arg 1943 only - Aug 1 0:00 0 S -Rule Arg 1943 only - Oct 15 0:00 1:00 D -Rule Arg 1946 only - Mar 1 0:00 0 S -Rule Arg 1946 only - Oct 1 0:00 1:00 D -Rule Arg 1963 only - Oct 1 0:00 0 S -Rule Arg 1963 only - Dec 15 0:00 1:00 D -Rule Arg 1964 1966 - Mar 1 0:00 0 S -Rule Arg 1964 1966 - Oct 15 0:00 1:00 D -Rule Arg 1967 only - Apr 1 0:00 0 S -Rule Arg 1967 1968 - Oct Sun<=7 0:00 1:00 D -Rule Arg 1968 1969 - Apr Sun<=7 0:00 0 S -Rule Arg 1974 only - Jan 23 0:00 1:00 D -Rule Arg 1974 only - May 1 0:00 0 S -Rule Arg 1974 1976 - Oct Sun<=7 0:00 1:00 D -Rule Arg 1975 1977 - Apr Sun<=7 0:00 0 S -Rule Arg 1985 only - Nov 2 0:00 1:00 D -Rule Arg 1986 only - Mar 14 0:00 0 S -Rule Arg 1986 1987 - Oct 25 0:00 1:00 D -Rule Arg 1987 only - Feb 13 0:00 0 S -Rule Arg 1988 only - Feb 7 0:00 0 S -Rule Arg 1988 only - Dec 1 0:00 1:00 D +Rule Arg 1930 only - Dec 1 0:00 1:00 S +Rule Arg 1931 only - Apr 1 0:00 0 - +Rule Arg 1931 only - Oct 15 0:00 1:00 S +Rule Arg 1932 1940 - Mar 1 0:00 0 - +Rule Arg 1932 1939 - Nov 1 0:00 1:00 S +Rule Arg 1940 only - Jul 1 0:00 1:00 S +Rule Arg 1941 only - Jun 15 0:00 0 - +Rule Arg 1941 only - Oct 15 0:00 1:00 S +Rule Arg 1943 only - Aug 1 0:00 0 - +Rule Arg 1943 only - Oct 15 0:00 1:00 S +Rule Arg 1946 only - Mar 1 0:00 0 - +Rule Arg 1946 only - Oct 1 0:00 1:00 S +Rule Arg 1963 only - Oct 1 0:00 0 - +Rule Arg 1963 only - Dec 15 0:00 1:00 S +Rule Arg 1964 1966 - Mar 1 0:00 0 - +Rule Arg 1964 1966 - Oct 15 0:00 1:00 S +Rule Arg 1967 only - Apr 1 0:00 0 - +Rule Arg 1967 1968 - Oct Sun<=7 0:00 1:00 S +Rule Arg 1968 1969 - Apr Sun<=7 0:00 0 - +Rule Arg 1974 only - Jan 23 0:00 1:00 S +Rule Arg 1974 only - May 1 0:00 0 - +Rule Arg 1974 1976 - Oct Sun<=7 0:00 1:00 S +Rule Arg 1975 1977 - Apr Sun<=7 0:00 0 - +Rule Arg 1985 only - Nov 2 0:00 1:00 S +Rule Arg 1986 only - Mar 14 0:00 0 - +Rule Arg 1986 1987 - Oct 25 0:00 1:00 S +Rule Arg 1987 only - Feb 13 0:00 0 - +Rule Arg 1988 only - Feb 7 0:00 0 - +Rule Arg 1988 only - Dec 1 0:00 1:00 S # # From Hernan G. Otero <hernan@isoft.com.ar> (June 26, 1995): # These corrections were contributed by InterSoft Argentina S.A., @@ -92,8 +94,8 @@ Rule Arg 1988 only - Dec 1 0:00 1:00 D # (Argentinian 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 S -Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 D +Rule Arg 1989 1993 - Mar Sun>=1 0:00 0 - +Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 S # # From Hernan G. Otero <hernan@isoft.com.ar> (June 26, 1995): # From this moment on, the law that mandated the daylight saving @@ -102,23 +104,23 @@ Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 D # # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Buenos_Aires -3:53:48 - LMT 1894 Nov - -4:17 - CMT 1920 May # Cordoba Mean Time - -4:00 - AST 1930 Dec - -4:00 Arg A%sT 1969 Oct 5 + -4:16:44 - CMT 1920 May # Cordoba Mean Time + -4:00 - ART 1930 Dec + -4:00 Arg AR%sT 1969 Oct 5 -3:00 Arg AR%sT # Aruba # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Aruba -4:40:24 - LMT 1912 Feb 12 # Oranjestad - -4:30 - NAST 1965 # Netherlands Antilles + -4:30 - ANT 1965 # Netherlands Antilles Time -4:00 - AST # Bolivia # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/La_Paz -4:32:36 - LMT 1890 - -4:33 - LPMT 1931 Oct 15 # La Paz Mean Time - -4:33 1:00 LPDT 1932 Mar 21 - -4:00 - AST + -4:32:36 - LPMT 1931 Oct 15 # La Paz Mean Time + -4:32:36 1:00 BOST 1932 Mar 21 # Bolivia ST + -4:00 - BOT # Bolivia Time # Brazil @@ -164,26 +166,26 @@ Zone America/La_Paz -4:32:36 - LMT 1890 # about time zone changes after 1990 Feb 11. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Brazil 1931 only - Oct 3 11:00 1 D +Rule Brazil 1931 only - Oct 3 11:00 1:00 D Rule Brazil 1932 1933 - Apr 1 0:00 0 S -Rule Brazil 1932 only - Oct 3 0:00 1 D -Rule Brazil 1949 1952 - Dec 1 0:00 1 D +Rule Brazil 1932 only - Oct 3 0:00 1:00 D +Rule Brazil 1949 1952 - Dec 1 0:00 1:00 D Rule Brazil 1950 only - Apr 16 0:00 0 S Rule Brazil 1951 1953 - Apr 1 0:00 0 S -Rule Brazil 1963 only - Dec 9 0:00 1 D +Rule Brazil 1963 only - Dec 9 0:00 1:00 D Rule Brazil 1964 only - Mar 1 0:00 0 S -Rule Brazil 1965 only - Jan 31 0:00 1 D +Rule Brazil 1965 only - Jan 31 0:00 1:00 D Rule Brazil 1965 only - Apr 1 0:00 0 S -Rule Brazil 1965 only - Dec 1 0:00 1 D +Rule Brazil 1965 only - Dec 1 0:00 1:00 D Rule Brazil 1966 1968 - Mar 1 0:00 0 S -Rule Brazil 1966 1967 - Nov 1 0:00 1 D -Rule Brazil 1985 only - Nov 2 0:00 1 D +Rule Brazil 1966 1967 - Nov 1 0:00 1:00 D +Rule Brazil 1985 only - Nov 2 0:00 1:00 D Rule Brazil 1986 only - Mar 15 0:00 0 S -Rule Brazil 1986 1987 - Oct Sat<=28 0:00 1 D +Rule Brazil 1986 1987 - Oct Sat<=28 0:00 1:00 D Rule Brazil 1987 only - Feb 14 0:00 0 S Rule Brazil 1988 only - Feb 7 0:00 0 S Rule Brazil 1989 only - Jan 22 0:00 0 S -Rule Brazil 1988 max - Oct Sun>=15 0:00 1 D +Rule Brazil 1988 max - Oct Sun>=15 0:00 1:00 D Rule Brazil 1990 max - Feb Sun>=8 0:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Noronha -2:09:40 - LMT 1914 @@ -209,21 +211,21 @@ Zone America/Porto_Acre -4:31:12 - LMT 1914 # of October.... The law is the same for March and October. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Chile 1918 only - Sep 1 0:00 1:00 D -Rule Chile 1919 only - Jul 2 0:00 0 S -Rule Chile 1927 1931 - Sep 1 0:00 1:00 D -Rule Chile 1928 1932 - Apr 1 0:00 0 S -Rule Chile 1969 max - Oct Sun>=9 0:00 1:00 D -Rule Chile 1970 max - Mar Sun>=9 0:00 0 S +Rule Chile 1918 only - Sep 1 0:00 1:00 S +Rule Chile 1919 only - Jul 2 0:00 0 - +Rule Chile 1927 1931 - Sep 1 0:00 1:00 S +Rule Chile 1928 1932 - Apr 1 0:00 0 - +Rule Chile 1969 max - Oct Sun>=9 0:00 1:00 S +Rule Chile 1970 max - Mar Sun>=9 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Santiago -4:42:40 - LMT 1890 - -4:43 - SMT 1910 # Santiago Mean Time - -5:00 Chile C%sT 1932 Sep - -4:00 Chile C%sT + -4:42:40 - SMT 1910 # Santiago Mean Time + -5:00 Chile CL%sT 1932 Sep # Chile Time + -4:00 Chile CL%sT Zone Pacific/Easter -7:17:28 - LMT 1890 # Mataveri - -7:17 - MMT 1932 Sep # Mataveri Mean Time - -7:00 Chile M%sT 1982 Mar 14 - -6:00 Chile C%sT + -7:17:28 - MMT 1932 Sep # Mataveri Mean Time + -7:00 Chile EAS%sT 1982 Mar 14 # Easter I Time + -6:00 Chile EAS%sT # # Whitman says Juan Fernandez Is are like America/Santiago. # San Ambrosio, San Felix @@ -233,56 +235,57 @@ Zone Pacific/Easter -7:17:28 - LMT 1890 # Mataveri # Colombia # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Bogota -4:56:20 - LMT 1884 Mar 13 - -4:56 - BMT 1914 Nov 23 # Bogota Mean Time - -5:00 - EST + -4:56:20 - BMT 1914 Nov 23 # Bogota Mean Time + -5:00 - COT # Colombia Time # Malpelo, Providencia, San Andres # no information; probably like America/Bogota # Curacao # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Curacao -4:35:44 - LMT 1912 Feb 12 # Willemstad - -4:30 - NAST 1965 # Netherlands Antilles + -4:30 - ANT 1965 # Netherlands Antilles Time -4:00 - AST # Ecuador # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Guayaquil -5:19:20 - LMT 1890 - -5:14 - QMT 1931 # Quito Mean Time - -5:00 - EST + -5:14:00 - QMT 1931 # Quito Mean Time + -5:00 - ECT # Ecuador Time Zone Pacific/Galapagos -5:58:24 - LMT 1931 # Puerto Baquerizo Moreno - -5:00 - EST 1986 - -6:00 - CST + -5:00 - ECT 1986 + -6:00 - GALT # Galapagos Time # Falklands # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 D -Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 S -Rule Falk 1939 only - Oct 1 0:00 1:00 D -Rule Falk 1940 1942 - Sep lastSun 0:00 1:00 D -Rule Falk 1943 only - Jan 1 0:00 0 S -Rule Falk 1983 only - Sep lastSun 0:00 1:00 D -Rule Falk 1984 1985 - Apr lastSun 0:00 0 S -Rule Falk 1984 only - Sep 16 0:00 1:00 D -Rule Falk 1985 max - Sep Sun>=9 0:00 1:00 D -Rule Falk 1986 max - Apr Sun>=16 0:00 0 S +Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 S +Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 - +Rule Falk 1939 only - Oct 1 0:00 1:00 S +Rule Falk 1940 1942 - Sep lastSun 0:00 1:00 S +Rule Falk 1943 only - Jan 1 0:00 0 - +Rule Falk 1983 only - Sep lastSun 0:00 1:00 S +Rule Falk 1984 1985 - Apr lastSun 0:00 0 - +Rule Falk 1984 only - Sep 16 0:00 1:00 S +Rule Falk 1985 max - Sep Sun>=9 0:00 1:00 S +Rule Falk 1986 max - Apr Sun>=16 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Atlantic/Stanley -3:51:24 - LMT 1890 - -3:51 - SMT 1912 Mar 12 # Stanley Mean Time - -4:00 Falk A%sT 1983 May - -3:00 Falk E%sT 1985 Sep 15 - -4:00 Falk A%sT + -3:51:24 - SMT 1912 Mar 12 # Stanley Mean Time + -4:00 Falk FK%sT 1983 May # Falkland Is Time + -3:00 Falk FK%sT 1985 Sep 15 + -4:00 Falk FK%sT # French Guiana # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Cayenne -3:29:20 - LMT 1911 Jul - -4:00 - AST 1967 Oct - -3:00 - EST + -4:00 - GFT 1967 Oct # French Guiana Time + -3:00 - GFT # Guyana # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Guyana -3:52:40 - LMT 1915 Mar # Georgetown - -3:45 - BGST 1975 Jul 31 # British Guiana ST - -3:00 - EST + -3:45 - GBGT 1966 May 26 # Br Guiana Time + -3:45 - GYT 1975 Jul 31 # Guyana Time + -3:00 - GYT # Paraguay @@ -297,39 +300,39 @@ Zone America/Guyana -3:52:40 - LMT 1915 Mar # Georgetown # From Shanks (1991): # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Para 1975 1978 - Oct 1 0:00 1:00 D -Rule Para 1975 1978 - Mar 1 0:00 0 S +Rule Para 1975 1978 - Oct 1 0:00 1:00 S +Rule Para 1975 1978 - Mar 1 0:00 0 - # Shanks says 1979 was all DST. -Rule Para 1980 max - Apr 1 0:00 0 S -Rule Para 1980 1988 - Oct 1 0:00 1:00 D -Rule Para 1989 only - Oct 22 0:00 1:00 D -Rule Para 1990 max - Oct 1 0:00 1:00 D +Rule Para 1980 max - Apr 1 0:00 0 - +Rule Para 1980 1988 - Oct 1 0:00 1:00 S +Rule Para 1989 only - Oct 22 0:00 1:00 S +Rule Para 1990 max - Oct 1 0:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890 - -3:51 - AMT 1931 Oct 10 # Asuncion Mean Time - -4:00 - AST 1972 Oct - -3:00 - EST 1974 Apr - -4:00 Para A%sT + -3:50:40 - AMT 1931 Oct 10 # Asuncion Mean Time + -4:00 - PYT 1972 Oct # Paraguay Time + -3:00 - PYT 1974 Apr + -4:00 Para PY%sT # Peru # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Peru 1938 only - Jan 1 0:00 1:00 D -Rule Peru 1938 only - Apr 1 0:00 0 S -Rule Peru 1938 1939 - Sep lastSun 0:00 1:00 D -Rule Peru 1939 1940 - Mar Sun>=24 0:00 0 S -Rule Peru 1987 only - Jan 1 0:00 1:00 D -Rule Peru 1987 only - Apr 1 0:00 0 S -Rule Peru 1990 only - Jan 1 0:00 1:00 D -Rule Peru 1990 only - Apr 1 0:00 0 S +Rule Peru 1938 only - Jan 1 0:00 1:00 S +Rule Peru 1938 only - Apr 1 0:00 0 - +Rule Peru 1938 1939 - Sep lastSun 0:00 1:00 S +Rule Peru 1939 1940 - Mar Sun>=24 0:00 0 - +Rule Peru 1987 only - Jan 1 0:00 1:00 S +Rule Peru 1987 only - Apr 1 0:00 0 - +Rule Peru 1990 only - Jan 1 0:00 1:00 S +Rule Peru 1990 only - Apr 1 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Lima -5:08:12 - LMT 1890 - -5:09 - LMT 1908 Jul 28 - -5:00 Peru E%sT + -5:09 - LMT 1908 Jul 28 # Lima Mean Time + -5:00 Peru PE%sT # Peru Time # South Georgia # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Atlantic/South_Georgia -2:26:08 - LMT 1890 # Grytviken - -2:00 - FST + -2:00 - GST # South Georgia Time # South Sandwich Is # uninhabited @@ -339,8 +342,9 @@ Zone Atlantic/South_Georgia -2:26:08 - LMT 1890 # Grytviken Zone America/Paramaribo -3:40:40 - LMT 1911 -3:40:52 - PMT 1935 # Paramaribo Mean Time -3:40:36 - PMT 1945 Oct # The capital moved? - -3:30 - DGST 1984 Oct # Dutch Guiana Std Time - -3:00 - EST + -3:30 - NEGT 1975 Nov 20 # Dutch Guiana Time + -3:30 - SRT 1984 Oct # Suriname Time + -3:00 - SRT # Trinidad and Tobago # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -353,55 +357,55 @@ Zone America/Port_of_Spain -4:06:04 - LMT 1912 Mar 2 # From Shanks (1991): # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Whitman gives 1923 Oct 1; go with Shanks. -Rule Uruguay 1923 only - Oct 2 0:00 0:30 HD -Rule Uruguay 1924 1926 - Apr 1 0:00 0 S -Rule Uruguay 1924 1925 - Oct 1 0:00 0:30 HD -Rule Uruguay 1933 1935 - Oct lastSun 0:00 0:30 HD +Rule Uruguay 1923 only - Oct 2 0:00 0:30 HS +Rule Uruguay 1924 1926 - Apr 1 0:00 0 - +Rule Uruguay 1924 1925 - Oct 1 0:00 0:30 HS +Rule Uruguay 1933 1935 - Oct lastSun 0:00 0:30 HS # Shanks gives 1935 Apr 1 0:00 and 1936 Mar 30 0:00; go with Whitman. -Rule Uruguay 1934 1936 - Mar Sat>=25 23:30s 0 S -Rule Uruguay 1936 only - Nov 1 0:00 0:30 HD -Rule Uruguay 1937 1941 - Mar lastSun 0:00 0 S +Rule Uruguay 1934 1936 - Mar Sat>=25 23:30s 0 - +Rule Uruguay 1936 only - Nov 1 0:00 0:30 HS +Rule Uruguay 1937 1941 - Mar lastSun 0:00 0 - # Whitman gives 1937 Oct 3; go with Shanks. -Rule Uruguay 1937 1940 - Oct lastSun 0:00 0:30 HD +Rule Uruguay 1937 1940 - Oct lastSun 0:00 0:30 HS # Whitman gives 1941 Oct 24 - 1942 Mar 27, 1942 Dec 14 - 1943 Apr 13, # and 1943 Apr 13 ``to present time''; go with Shanks. -Rule Uruguay 1941 only - Aug 1 0:00 0 S -Rule Uruguay 1942 only - Jan 1 0:00 0:30 HD -Rule Uruguay 1942 only - Dec 14 0:00 1:00 D -Rule Uruguay 1943 only - Mar 14 0:00 0 S -Rule Uruguay 1959 only - May 24 0:00 1:00 D -Rule Uruguay 1959 only - Nov 15 0:00 0 S -Rule Uruguay 1960 only - Jan 17 0:00 1:00 D -Rule Uruguay 1960 only - Mar 6 0:00 0 S -Rule Uruguay 1965 1967 - Apr Sun>=1 0:00 1:00 D -Rule Uruguay 1965 only - Sep 26 0:00 0 S -Rule Uruguay 1966 1967 - Oct 31 0:00 0 S -Rule Uruguay 1968 1970 - May 27 0:00 0:30 HD -Rule Uruguay 1968 1970 - Dec 2 0:00 0 S -Rule Uruguay 1972 only - Apr 24 0:00 1:00 D -Rule Uruguay 1972 only - Aug 15 0:00 0 S -Rule Uruguay 1974 only - Mar 10 0:00 0:30 HD -Rule Uruguay 1974 only - Dec 22 0:00 1:00 D -Rule Uruguay 1976 only - Oct 1 0:00 0 S -Rule Uruguay 1977 only - Dec 4 0:00 1:00 D -Rule Uruguay 1978 only - Apr 1 0:00 0 S -Rule Uruguay 1979 only - Oct 1 0:00 1:00 D -Rule Uruguay 1980 only - May 1 0:00 0 S -Rule Uruguay 1987 only - Dec 14 0:00 1:00 D -Rule Uruguay 1988 only - Mar 14 0:00 0 S -Rule Uruguay 1988 only - Dec 11 0:00 1:00 D -Rule Uruguay 1989 only - Mar 12 0:00 0 S -Rule Uruguay 1989 only - Oct 29 0:00 1:00 D -Rule Uruguay 1990 only - Mar 4 0:00 0 S +Rule Uruguay 1941 only - Aug 1 0:00 0 - +Rule Uruguay 1942 only - Jan 1 0:00 0:30 HS +Rule Uruguay 1942 only - Dec 14 0:00 1:00 S +Rule Uruguay 1943 only - Mar 14 0:00 0 - +Rule Uruguay 1959 only - May 24 0:00 1:00 S +Rule Uruguay 1959 only - Nov 15 0:00 0 - +Rule Uruguay 1960 only - Jan 17 0:00 1:00 S +Rule Uruguay 1960 only - Mar 6 0:00 0 - +Rule Uruguay 1965 1967 - Apr Sun>=1 0:00 1:00 S +Rule Uruguay 1965 only - Sep 26 0:00 0 - +Rule Uruguay 1966 1967 - Oct 31 0:00 0 - +Rule Uruguay 1968 1970 - May 27 0:00 0:30 HS +Rule Uruguay 1968 1970 - Dec 2 0:00 0 - +Rule Uruguay 1972 only - Apr 24 0:00 1:00 S +Rule Uruguay 1972 only - Aug 15 0:00 0 - +Rule Uruguay 1974 only - Mar 10 0:00 0:30 HS +Rule Uruguay 1974 only - Dec 22 0:00 1:00 S +Rule Uruguay 1976 only - Oct 1 0:00 0 - +Rule Uruguay 1977 only - Dec 4 0:00 1:00 S +Rule Uruguay 1978 only - Apr 1 0:00 0 - +Rule Uruguay 1979 only - Oct 1 0:00 1:00 S +Rule Uruguay 1980 only - May 1 0:00 0 - +Rule Uruguay 1987 only - Dec 14 0:00 1:00 S +Rule Uruguay 1988 only - Mar 14 0:00 0 - +Rule Uruguay 1988 only - Dec 11 0:00 1:00 S +Rule Uruguay 1989 only - Mar 12 0:00 0 - +Rule Uruguay 1989 only - Oct 29 0:00 1:00 S +Rule Uruguay 1990 only - Mar 4 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Montevideo -3:44:44 - LMT 1898 Jun 28 - -3:45 - MMT 1920 May 1 # Montevideo MT - -3:30 Uruguay U%sT 1942 Dec 14 # Uruguay ST - -3:00 Uruguay E%sT + -3:44:44 - MMT 1920 May 1 # Montevideo MT + -3:30 Uruguay UY%sT 1942 Dec 14 # Uruguay Time + -3:00 Uruguay UY%sT # Venezuela # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Caracas -4:27:44 - LMT 1890 - -4:28 - CMT 1912 Feb 12 # Caracas Mean Time - -4:30 - VZT 1965 # Venezuela Time - -4:00 - AST + -4:27:44 - CMT 1912 Feb 12 # Caracas Mean Time + -4:30 - VET 1965 # Venezuela Time + -4:00 - VET @@ -1,6 +1,6 @@ #ifndef lint #ifndef NOID -static char elsieid[] = "@(#)zic.c 7.77"; +static char elsieid[] = "@(#)zic.c 7.78"; #endif /* !defined NOID */ #endif /* !defined lint */ @@ -136,9 +136,9 @@ static void usage P((void)); static void writezone P((const char * name)); static int yearistype P((int year, const char * type)); -#if !HAVE_STRERROR +#if !(HAVE_STRERROR - 0) static char * strerror P((int)); -#endif /* !HAVE_STRERROR */ +#endif /* !(HAVE_STRERROR - 0) */ static int charcnt; static int errors; @@ -375,19 +375,18 @@ char * const ptr; ** Error handling. */ -#if ! HAVE_STRERROR +#if !(HAVE_STRERROR - 0) static char * strerror(errnum) int errnum; { - extern char *sys_errlist[]; - extern int sys_nerr; + extern char * sys_errlist[]; + extern int sys_nerr; - if (errnum > 0 && errnum <= sys_nerr) - return sys_errlist[errnum]; - return "Unknown system error"; + return (errnum > 0 && errnum <= sys_nerr) ? + sys_errlist[errnum] : "Unknown system error"; } -#endif /* ! HAVE_STRERROR */ +#endif /* !(HAVE_STRERROR - 0) */ static void eats(name, num, rname, rnum) @@ -28,7 +28,7 @@ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n" #include "version-info.h" -"Report bugs to <bug-glibc@gnu.ai.mit.edu>.\n"; +"Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"; #include <unistd.h> |