+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
* 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.
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
$(..)glibc-$(version):
ln -s . $@
-+tsrcs := $(+tsrcs) \
- TAGS
+#+tsrcs := $(+tsrcs) \
+# TAGS
.PHONY: TAGS
TAGS: $(..)MakeTAGS
$(MAKE) -f $< $@ -o subdir_TAGS
@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 $< > $@
-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.
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
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
# 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
:
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
:
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
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
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; }
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
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; }
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
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
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
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
+++ /dev/null
-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.
+++ /dev/null
-#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 */
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 \
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;
}
}
aux := \
cleanup fileops genops stdfiles stdio strops
-distribute := iolibio.h libioP.h strfile.h
+distribute := iolibio.h libioP.h strfile.h Banner
include ../Rules
#define EOF (-1)
#endif
#ifndef BUFSIZ
-#define BUFSIZ 1024
+#define BUFSIZ _IO_BUFSIZ
#endif
#define _IOFBF 0 /* Fully buffered. */
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 */
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)
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) == ':')
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
{
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;
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);
}
)
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";
(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. */
(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. */
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... */
}
#include <sysdep.h>
-ENTRY(fabs)
+ENTRY(__fabs)
.prologue 0
cpys $f31,$f16,$f0
ret
- END(fabs)
+ END(__fabs)
+weak_alias (__fabs, fabs)
+++ /dev/null
-/* __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;
- }
-}
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);
-}
-
-
-/* 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.
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 */
/* 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
+++ /dev/null
-/*
- * 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
+++ /dev/null
-/* 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)
+++ /dev/null
-/* 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)
+++ /dev/null
-/*
- * 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);
-}
#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. */
#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. */
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
#endif
float_type
-DEFUN(FUNC, (x), float_type x)
+FUNC (x)
+ float_type x;
{
return __m81_u(FUNC)(x);
}
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
#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);
}
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
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
{
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)
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
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
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
+#define __NO_M81_MATH_INLINES
#include <math.h>
#ifndef FUNC
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
+#define __NO_M81_MATH_INLINES
#include <math.h>
#ifndef FUNC
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
+#define __NO_M81_MATH_INLINES
#include <math.h>
#ifndef FUNC
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
+#define __NO_M81_MATH_INLINES
#include <math.h>
#ifndef FUNC
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
+#define __NO_M81_MATH_INLINES
#include <math.h>
#ifndef FUNC
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
+#define __NO_M81_MATH_INLINES
#include <math.h>
#ifndef FUNC
/* __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. */
/* 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));
+++ /dev/null
-/* 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)
+++ /dev/null
-/* 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)
+++ /dev/null
-/* 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)
+++ /dev/null
-/* 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)
+++ /dev/null
-/* 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);
+++ /dev/null
-/* 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);
+++ /dev/null
-/* 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)
+++ /dev/null
-/* 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)
+++ /dev/null
-/* 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)
+++ /dev/null
-/* 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>
-
init-first.h
clone.S
sys/io.h
+llseek.S
+++ /dev/null
-/* 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); \
-}
+++ /dev/null
-/* 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");
+++ /dev/null
-/*
- * 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
+++ /dev/null
-/*
- * 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
+++ /dev/null
-/* 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)
+++ /dev/null
-/* 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>
cmpc3 r5,(r1),(r3)
jeql 0b /* loop if same */
jbr 1b
+
+weak_alias (memcmp, bcmp)
+++ /dev/null
-/*
- * 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
beql 2f /* not found: return NULL */
movl r1,r0
2: ret
+
+weak_alias (strchr, index)
3:
movl r5,r0 /* return stashed pointer */
ret
+
+weak_alias (strrchr, rindex)
-# @(#)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),
# 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
-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]
# 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]
# 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
# 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
# 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
###############################################################################
# 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
# 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
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]
# 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]
# 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
# 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
# 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
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
# 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]
# 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]
# 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
-# @(#)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
-# @(#)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),
# 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
# 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
# <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]
# 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]
# 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
# 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.
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
###############################################################################
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):
# 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
# 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
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
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):
#
# 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
# 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
#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.
# 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):
# 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
###############################################################################
# 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]
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
# 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]
# 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]
# 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):
# 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
-# @(#)australasia 7.27
+# @(#)australasia 7.28
# This file also includes Pacific islands.
# Notes are at the end of this file
# 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
# 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]
# 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
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
###############################################################################
# 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
# 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
# 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
###############################################################################
# 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.
###############################################################################
-# @(#)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).
#
# 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.
# 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):
#
# 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
# 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
# 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.
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
# 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.
# 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,
# 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.
# 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
#
# (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.
# 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:
# 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.
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.
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:
# 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
###############################################################################
-# @(#)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,
#
# 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
# 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
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
# 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
# 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]
-# @(#)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
# 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.,
# (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
#
# 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
# 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
# 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
# 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
# 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
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]
# 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
#ifndef lint
#ifndef NOID
-static char elsieid[] = "@(#)zic.c 7.77";
+static char elsieid[] = "@(#)zic.c 7.78";
#endif /* !defined NOID */
#endif /* !defined lint */
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;
** 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)
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>