From 169f132f1a1626ae5070633f7778cc6bab8ea276 Mon Sep 17 00:00:00 2001
From: d
Date: Sun, 16 Apr 2000 16:24:03 +0000
Subject: [PATCH] sync with ftp://elsie.nci.nih.gov/pub/tzcode2000c.tar.gz,
millert@ ok
---
lib/libc/time/Theory | 22 ++-
lib/libc/time/WWW.htm | 104 -------------
lib/libc/time/ctime.3 | 11 +-
lib/libc/time/localtime.c | 19 ++-
lib/libc/time/private.h | 19 ++-
lib/libc/time/strftime.3 | 41 +++---
lib/libc/time/strftime.c | 21 ++-
lib/libc/time/{Arts.htm => tz-art.htm} | 58 ++++++--
lib/libc/time/tz-link.htm | 195 +++++++++++++++++++++++++
lib/libc/time/zic.8 | 6 +-
lib/libc/time/zic.c | 14 +-
11 files changed, 336 insertions(+), 174 deletions(-)
delete mode 100644 lib/libc/time/WWW.htm
rename lib/libc/time/{Arts.htm => tz-art.htm} (68%)
create mode 100644 lib/libc/time/tz-link.htm
diff --git a/lib/libc/time/Theory b/lib/libc/time/Theory
index 0820c9f9d3d..7d38e130cb4 100644
--- a/lib/libc/time/Theory
+++ b/lib/libc/time/Theory
@@ -1,5 +1,4 @@
-$OpenBSD: Theory,v 1.5 1999/07/01 23:05:39 d Exp $
-@(#)Theory 7.8
+@(#)Theory 7.10
----- Outline -----
@@ -199,7 +198,8 @@ in decreasing order of importance:
`-' and `_'. Do not exceed 14 characters or start with `-'.
E.g. prefer `Brunei' to `Bandar_Seri_Begawan'.
Include at least one location per time zone rule set per country.
- One such location is enough.
+ One such location is enough. Use ISO 3166 (see the file
+ iso3166.tab) to help decide whether something is a country.
If all the clocks in a country's region have agreed since 1970,
don't bother to include more than one location
even if subregions' clocks disagreed before 1970.
@@ -318,6 +318,22 @@ off were the 6th, 12th, 18th, 24th and 30th of the month.
(Source: Evitiar Zerubavel, _The Seven Day Circle_)
+Mark Brader reported a similar story in "The Book of Calendars", edited
+by Frank Parise (1982, Facts on File, ISBN 0-8719-6467-8), page 377. But:
+
+From: Petteri Sulonen (via Usenet)
+Date: 14 Jan 1999 00:00:00 GMT
+Message-ID:
+
+If your source is correct, how come documents between 1929 -- 1940 were
+still dated using the conventional, Gregorian calendar?
+
+I can post a scan of a document dated December 1, 1934, signed by
+Yenukidze, the secretary, on behalf of Kalinin, the President of the
+Executive Committee of the Supreme Soviet, if you like.
+
+
+
Sweden (and Finland)
From: msb@sq.com (Mark Brader)
diff --git a/lib/libc/time/WWW.htm b/lib/libc/time/WWW.htm
deleted file mode 100644
index 30bddb8afab..00000000000
--- a/lib/libc/time/WWW.htm
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
-
-
-Sources for Time Zone and Daylight Saving Time Data
-
-
-
Sources for Time Zone and Daylight Saving Time Data
-
-
-@(#)WWW.htm 7.18
-
-
Paul Eggert writes:
-The public-domain tz database contains code and data
-that represent the history of local time
-for many representative locations around the globe.
-It is updated periodically to reflect changes made by political bodies
-to UTC offsets and daylight-saving rules.
-This database (often called zoneinfo)
-is used by several implementations,
-including BSD, DJGPP, GNU/Linux, HP-UX, IRIX, Solaris, and UnixWare.
-In the tz database's
-FTP distribution,
-the code is in the file tzcodeC.tar.gz,
-where C is the code's version;
-similarly, the data are in tzdataD.tar.gz,
-where D is the data's version.
-
-The GNU C Library
-has an independent, thread-safe implementation of
-a time zone file reader that is compatible with zoneinfo.
-This library is freely available under the GNU Library General Public License,
-and is widely used in GNU/Linux systems.
-
-The Web has several other sources for time zone and daylight saving time data.
-Here are some recent links that may be of interest.
-
-
Date and Time Gateway
-is a text-based source for tables of current time throughout the world.
-Its point-and-click interface accesses a recent version of the tz data.
-
Local Times Around the World
-is a text-based system containing links to local time servers
-throughout the world; though the coverage is limited,
-the live data provide a nice way to check one's tables.
-
World Time Zones
-contains US Naval Observatory data, used as the source
-for the usno* files.
-
The United States Central Intelligence Agency publishes a
-time
-zone map; the
-
-Perry-Castañeda Library Map Collection
-of the University of Texas at Austin has on-line copies of
-recent editions.
-The pictorial quality is good,
-but the maps do not indicate summer time,
-and parts of the data are a few years out of date.
-
Worldtimezone.com
-has several fancy time zone maps; it covers Russia particularly well.
-The maps' pictorial quality is not quite as good as the CIA's
-and (as usual with maps) the maps are not quite up to date.
-
The
-Time of Internet
-contains good descriptions of Time Zones and daylight saving time,
-with diagrams.
-The time zone map is out of date, however.
-
The International Air Transport Association
-publishes the IATA Standard Schedules Information Manual (SSIM),
-which gives current time zone rules for
-all the airports served by commercial aviation.
-
Bulletins
-of IERS contains official publications of the
-International Earth Rotation Service, the committee that decides
-when leap seconds occur.
-
-
-
diff --git a/lib/libc/time/ctime.3 b/lib/libc/time/ctime.3
index 77b76317040..ccdee7293cd 100644
--- a/lib/libc/time/ctime.3
+++ b/lib/libc/time/ctime.3
@@ -1,4 +1,4 @@
-.\" $OpenBSD: ctime.3,v 1.21 2000/04/15 02:15:26 aaron Exp $
+.\" $OpenBSD: ctime.3,v 1.22 2000/04/16 16:24:03 d Exp $
.\"
.\"
.Dd February 16, 1999
@@ -23,9 +23,9 @@
.Ft void
.Fn tzset "void"
.Ft "char *"
-.Fn ctime "time_t *clock"
+.Fn ctime "const time_t *clock"
.Ft "char *"
-.Fn ctime_r "time_t *clock" "char *buf"
+.Fn ctime_r "const time_t *clock" "char *buf"
.Ft double
.Fn difftime "time_t time1" "time_t time0"
.Ft "char *"
@@ -92,8 +92,7 @@ After filling in the
structure,
.Fn localtime
sets the
-.Fa tm_isdst
-'th
+.Fa tm_isdst Ns No 'th
element of
.Fa tzname
to a pointer to an
@@ -275,4 +274,4 @@ as the superuser.
Avoid using out-of-range values with
.Fn mktime
when setting up lunch with promptness sticklers in Riyadh.
-.\" based on @(#)newctime.3 7.13
+.\" based on @(#)newctime.3 7.14
diff --git a/lib/libc/time/localtime.c b/lib/libc/time/localtime.c
index 944b4258699..399d53802f0 100644
--- a/lib/libc/time/localtime.c
+++ b/lib/libc/time/localtime.c
@@ -4,8 +4,8 @@
*/
#if defined(LIBC_SCCS) && !defined(lint) && !defined(NOID)
-static char elsieid[] = "@(#)localtime.c 7.66";
-static char rcsid[] = "$OpenBSD: localtime.c,v 1.18 2000/01/06 08:24:17 d Exp $";
+static char elsieid[] = "@(#)localtime.c 7.70";
+static char rcsid[] = "$OpenBSD: localtime.c,v 1.19 2000/04/16 16:24:03 d Exp $";
#endif /* LIBC_SCCS and not lint */
/*
@@ -59,6 +59,17 @@ static char wildabbr[] = "WILDABBR";
static const char gmt[] = "GMT";
+/*
+** The DST rules to use if TZ has no rules and we can't load TZDEFRULES.
+** We default to US rules as of 1999-08-17.
+** POSIX 1003.1 section 8.1.1 says that the default DST rules are
+** implementation dependent; for historical reasons, US rules are a
+** common default.
+*/
+#ifndef TZDEFRULESTRING
+#define TZDEFRULESTRING ",M4.1.0,M10.5.0"
+#endif /* !defined TZDEFDST */
+
struct ttinfo { /* time type information */
long tt_gmtoff; /* UTC offset in seconds */
int tt_isdst; /* used to set tm_isdst */
@@ -740,6 +751,8 @@ const int lastditch;
if (name == NULL)
return -1;
} else dstoffset = stdoffset - SECSPERHOUR;
+ if (*name == '\0' && load_result != 0)
+ name = TZDEFRULESTRING;
if (*name == ',' || *name == ';') {
struct rule start;
struct rule end;
@@ -802,8 +815,6 @@ const int lastditch;
if (*name != '\0')
return -1;
- if (load_result != 0)
- return -1;
/*
** Initial values of theirstdoffset and theirdstoffset.
*/
diff --git a/lib/libc/time/private.h b/lib/libc/time/private.h
index cec18889859..82cfeacc91d 100644
--- a/lib/libc/time/private.h
+++ b/lib/libc/time/private.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: private.h,v 1.11 1999/01/29 07:04:05 d Exp $ */
+/* $OpenBSD: private.h,v 1.12 2000/04/16 16:24:04 d Exp $ */
#ifndef PRIVATE_H
#define PRIVATE_H
@@ -33,7 +33,7 @@
#if 0
#ifndef lint
#ifndef NOID
-static char privatehid[] = "@(#)private.h 7.48";
+static char privatehid[] = "@(#)private.h 7.49";
#endif /* !defined NOID */
#endif /* !defined lint */
#endif
@@ -63,6 +63,10 @@ static char privatehid[] = "@(#)private.h 7.48";
#define HAVE_SYMLINK 1
#endif /* !defined HAVE_SYMLINK */
+#ifndef HAVE_SYS_WAIT_H
+#define HAVE_SYS_WAIT_H 1
+#endif /* !defined HAVE_SYS_WAIT_H */
+
#ifndef HAVE_UNISTD_H
#define HAVE_UNISTD_H 1
#endif /* !defined HAVE_UNISTD_H */
@@ -93,6 +97,17 @@ static char privatehid[] = "@(#)private.h 7.48";
#include "libintl.h"
#endif /* HAVE_GETTEXT - 0 */
+#if HAVE_SYS_WAIT_H - 0
+#include /* for WIFEXITED and WEXITSTATUS */
+#endif /* HAVE_SYS_WAIT_H - 0 */
+
+#ifndef WIFEXITED
+#define WIFEXITED(status) (((status) & 0xff) == 0)
+#endif /* !defined WIFEXITED */
+#ifndef WEXITSTATUS
+#define WEXITSTATUS(status) (((status) >> 8) & 0xff)
+#endif /* !defined WEXITSTATUS */
+
#if HAVE_UNISTD_H - 0
#include "unistd.h" /* for F_OK and R_OK */
#endif /* HAVE_UNISTD_H - 0 */
diff --git a/lib/libc/time/strftime.3 b/lib/libc/time/strftime.3
index 1fe3c1ac705..3383ffc3acd 100644
--- a/lib/libc/time/strftime.3
+++ b/lib/libc/time/strftime.3
@@ -33,8 +33,8 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" from: @(#)strftime.3 5.12 (Berkeley) 6/29/91
-.\" $OpenBSD: strftime.3,v 1.9 1999/07/09 13:35:21 aaron Exp $
+.\" from: @(#)strftime.3 5.12 (Berkeley) 6/29/91
+.\" $OpenBSD: strftime.3,v 1.10 2000/04/16 16:24:04 d Exp $
.\"
.Dd January 18, 1998
.Dt STRFTIME 3
@@ -89,37 +89,37 @@ is replaced by the locale's full month name.
is replaced by the locale's abbreviated month name.
.It Cm \&%C
is replaced by the century (a year divided by 100 and truncated to an integer)
-as a decimal number [00,99].
+as a decimal number (00-99).
.It Cm \&%c
is replaced by the locale's appropriate date and time representation.
.It Cm \&%D
is replaced by the date in the format
.Dq Li %m/%d/%y .
.It Cm \&%d
-is replaced by the day of the month as a decimal number [01,31].
+is replaced by the day of the month as a decimal number (01-31).
.It Cm \&%e
-is replaced by the day of month as a decimal number [1,31];
+is replaced by the day of month as a decimal number (1-31);
single digits are preceded by a blank.
.It Cm \&%G
is replaced by the ISO 8601 year with century as a decimal number.
.It Cm \&%g
-is replaced by the ISO 8601 year without century as a decimal number [00,99].
+is replaced by the ISO 8601 year without century as a decimal number (00-99).
.It Cm \&%H
-is replaced by the hour (24-hour clock) as a decimal number [00,23].
+is replaced by the hour (24-hour clock) as a decimal number (00-23).
.It Cm \&%I
-is replaced by the hour (12-hour clock) as a decimal number [01,12].
+is replaced by the hour (12-hour clock) as a decimal number (01-12).
.It Cm \&%j
-is replaced by the day of the year as a decimal number [001,366].
+is replaced by the day of the year as a decimal number (001-366).
.It Cm \&%k
-is replaced by the hour (24-hour clock) as a decimal number [0,23];
+is replaced by the hour (24-hour clock) as a decimal number (0-23);
single digits are preceded by a blank.
.It Cm \&%l
-is replaced by the hour (12-hour clock) as a decimal number [1,12];
+is replaced by the hour (12-hour clock) as a decimal number (1-12);
single digits are preceded by a blank.
.It Cm \&%M
-is replaced by the minute as a decimal number [00,59].
+is replaced by the minute as a decimal number (00-59).
.It Cm %m
-is replaced by the month as a decimal number [01,12].
+is replaced by the month as a decimal number (01-12).
.It Cm %n
is replaced by a newline.
.It Cm %p
@@ -134,7 +134,7 @@ is replaced by the time in the format
is replaced by the locale's representation of 12-hour clock time
using AM/PM notation.
.It Cm \&%S
-is replaced by the second as a decimal number [00,61].
+is replaced by the second as a decimal number (00-61).
.It Cm %s
is replaced by the number of seconds since the Epoch, UTC (see
.Xr mktime 3 ) .
@@ -145,21 +145,21 @@ is replaced by the time in the format
is replaced by a tab.
.It Cm \&%U
is replaced by the week number of the year (Sunday as the first day of
-the week) as a decimal number [00,53].
+the week) as a decimal number (00-53).
.It Cm \&%u
is replaced by the weekday (Monday as the first day of the week)
-as a decimal number [1,7].
+as a decimal number (1-7).
.It Cm \&%V
is replaced by the week number of the year (Monday as the first day of
-the week) as a decimal number [01,53]. If the week containing January
+the week) as a decimal number (01-53). If the week containing January
1 has four or more days in the new year, then it is week 1; otherwise
it is week 53 of the previous year, and the next week is week 1.
.It Cm \&%W
is replaced by the week number of the year (Monday as the first day of
-the week) as a decimal number [00,53].
+the week) as a decimal number (00-53).
.It Cm \&%w
is replaced by the weekday (Sunday as the first day of the week)
-as a decimal number [0,6].
+as a decimal number (0-6).
.It Cm \&%X
is replaced by the locale's appropriate time representation.
.It Cm \&%x
@@ -167,7 +167,7 @@ is replaced by the locale's appropriate date representation.
.It Cm \&%Y
is replaced by the year with century as a decimal number.
.It Cm \&%y
-is replaced by the year without century as a decimal number [00,99].
+is replaced by the year without century as a decimal number (00-99).
.It Cm \&%Z
is replaced by the time zone name.
.It Cm %%
@@ -225,3 +225,4 @@ other implementations may not do so when
is not large enough to store the entire time string. The contents of
.Fa buf
are implementation specific in this case.
+.\" @(#)newstrftime.3 7.11
diff --git a/lib/libc/time/strftime.c b/lib/libc/time/strftime.c
index 321d71fafc1..f005a86a936 100644
--- a/lib/libc/time/strftime.c
+++ b/lib/libc/time/strftime.c
@@ -1,6 +1,6 @@
#if defined(LIBC_SCCS) && !defined(lint) && !defined(NOID)
-static char elsieid[] = "@(#)strftime.c 7.57";
-static char *rcsid = "$OpenBSD: strftime.c,v 1.5 1998/08/14 21:39:44 deraadt Exp $";
+static char elsieid[] = "@(#)strftime.c 7.58";
+static char *rcsid = "$OpenBSD: strftime.c,v 1.6 2000/04/16 16:24:04 d Exp $";
#endif /* LIBC_SCCS and not lint */
#include "private.h"
@@ -80,24 +80,21 @@ static const struct lc_time_T C_time_locale = {
/*
** x_fmt
- ** Since the C language standard calls for
- ** "date, using locale's date format," anything goes.
+ ** C99 requires this format.
** Using just numbers (as here) makes Quakers happier;
** it's also compatible with SVR4.
- **
- ** XXX--might it be better to use the year-2000 friendly
- ** %Y-%m-%d
- ** here?
*/
"%m/%d/%y",
/*
** c_fmt
- ** XXX--Changed by millert from "%D %X"
- ** to the more common "%a %b %d %H:%M:%S %Y"
- ** used by everyone else.
+ ** C99 requires this format.
+ ** Previously this code used "%D %X", but we now conform to C99.
+ ** Note that
+ ** "%a %b %d %H:%M:%S %Y"
+ ** is used by Solaris 2.3.
*/
- "%a %b %d %H:%M:%S %Y",
+ "%a %b %e %T %Y",
/* am */
"AM",
diff --git a/lib/libc/time/Arts.htm b/lib/libc/time/tz-art.htm
similarity index 68%
rename from lib/libc/time/Arts.htm
rename to lib/libc/time/tz-art.htm
index 550269015ee..e1b2882793e 100644
--- a/lib/libc/time/Arts.htm
+++ b/lib/libc/time/tz-art.htm
@@ -1,17 +1,24 @@
-
-
+
+
Time and the Arts
+"Is that a pertinent fact, or are you trying to dazzle me with your command
+of time zones?"
+ "Frasier Crane"
+==========================================================================
Data on recordings of "Save That Time," Russ Long, Serrob Publishing, BMI:
--------------------------------------------------------------------------
Artist: Karrin Allyson
@@ -27,7 +34,7 @@ Personnel: Karrin Allyson, vocal
Notes: CD notes "additional lyric by Karrin Allyson;
arranged by Russ Long and Karrin Allyson"
ADO Rating: 1 star
-AMG Rating: 4 stars
+AMG Rating: 4 stars
Penguin Rating: 3.5 stars
--------------------------------------------------------------------------
Artist: Kevin Mahogany
@@ -42,7 +49,7 @@ Personnel: Kevin Mahogany, vocal
Ralph Moore, tenor saxophone
Lewis Nash, drums
ADO Rating: 1.5 stars
-AMG Rating: 3 stars
+AMG Rating: 3 stars
Penguin Rating: 3 stars
--------------------------------------------------------------------------
Artist: Joe Williams
@@ -53,8 +60,10 @@ ID: CD-83357
Track Time: 3:58
Personnel: Joe Williams, vocal
The Robert Farnon [39 piece] Orchestra
+Notes: This CD is also available as part of a 3-CD package from
+ Telarc, "Triple Play" (CD-83461)
ADO Rating: black dot
-AMG Rating: 2 stars
+AMG Rating: 2 stars
Penguin Rating: 3 stars
--------------------------------------------------------------------------
Artist: Charles Fambrough
@@ -71,7 +80,7 @@ Personnel: Charles Fambrough, bass
Notes: On-line information and samples available at
http://wwmusic.com/~music/audioq/rel/1033.html
ADO Rating: 2 stars
-AMG Rating: unrated
+AMG Rating: unrated
Penguin Rating: 3 stars
==========================================================================
Also of note:
@@ -88,7 +97,7 @@ Personnel: Holly Cole, voice
Notes: Lyrical reference to "Eastern Standard Time" in
Tom Waits' "Purple Avenue"
ADO Rating: 2.5 stars
-AMG Rating: 3 stars
+AMG Rating: 3 stars
Penguin Rating: unrated
--------------------------------------------------------------------------
Artist: Milt Hinton
@@ -119,7 +128,7 @@ Notes: tunes include Old Man Time, Time After Time,
On-line samples available at
http://www.globalmusic.com/labels/chiaroscuro/chiaro_cd_gallery.html
ADO Rating: 3 stars
-AMG Rating: 4.5 stars
+AMG Rating: 4.5 stars
Penguin Rating: 3 stars
--------------------------------------------------------------------------
Artist: Paul Broadbent
@@ -131,9 +140,9 @@ Total Time: 62:42
Personnel: Paul Broadbent, piano
Putter Smith, Bass
Frank Gibson, Jr., drums
-Notes: The CD cover features an analemma for equation of time fans
+Notes: The CD cover features an analemma for equation-of-time fans
ADO Rating: 1 star
-AMG Rating: 4 stars
+AMG Rating: 4 stars
Penguin Rating: 3.5 stars
--------------------------------------------------------------------------
Artist: Anthony Braxton/Richard Teitelbaum
@@ -148,7 +157,7 @@ Personnel: Anthony Braxton, sporanino and alto saxophones,
Leroy Jenkins, violin and miscellaneous instruments
Richard Teitelbaum, modular moog and micromoog synthesizer
ADO Rating: black dot
-AMG Rating: unrated
+AMG Rating: unrated
--------------------------------------------------------------------------
Artist: Jules Verne
Book: Le Tour du Monde en Quatre-Vingts Jours
@@ -169,8 +178,27 @@ Notes: The Frank Baxter/Richard Deacon extravaganza
Information on ordering is available at
http://www.videoflicks.com/VF/38/038332.htm
--------------------------------------------------------------------------
+An episode of "The Adventures of Superman" entitled "The Mysterious
+Cube," first aired 1958-02-24, had Superman convincing the controllers
+of WWV to broadcast time signals five minutes ahead of actual time;
+doing so got a crook trying to beat the statute of limitations to
+emerge a bit too early from the titular enclosure.
+--------------------------------------------------------------------------
+The 1960s ITC television series "The Prisoner" included an episode
+entitled "The Chimes of Big Ben" in which our protagonist tumbled to
+the fraudulent nature of a Poland-to-England escape upon hearing "Big
+Ben" chiming on Polish local time.
+--------------------------------------------------------------------------
The syndicated comic strip "Dilbert" featured an all-too-rare example of
time zone humor on 1998-03-14.
+--------------------------------------------------------------------------
+Surrealist artist Guy Billout's work "Date Line" appeared on page 103
+of the November, 1999 Atlantic Monthly.
+==========================================================================
+"Good news."
+"What did they do? Extend Daylight Saving Time year round?"
+ Professional tanner George Hamilton, in dialog from a
+ May, 1999 episode of the syndicated television series "Baywatch"
diff --git a/lib/libc/time/tz-link.htm b/lib/libc/time/tz-link.htm
new file mode 100644
index 00000000000..fe3c981a2cd
--- /dev/null
+++ b/lib/libc/time/tz-link.htm
@@ -0,0 +1,195 @@
+
+
+
+
+Sources for Time Zone and Daylight Saving Time Data
+
+
+
+
+
+
+
+
+
+
Sources for Time Zone and Daylight Saving Time Data
+The public-domain time zone database contains code and data
+that represent the history of local time
+for many representative locations around the globe.
+It is updated periodically to reflect changes made by political bodies
+to UTC offsets and daylight-saving rules.
+This database (often called tz or zoneinfo)
+is used by several implementations,
+including BSD, DJGPP, GNU/Linux, HP-UX, IRIX, Solaris, and UnixWare.
+In the tz database's
+FTP distribution,
+the code is in the file tzcodeC.tar.gz,
+where C is the code's version;
+similarly, the data are in tzdataD.tar.gz,
+where D is the data's version.
+
+The GNU C Library
+has an independent, thread-safe implementation of
+a time zone file reader that is compatible with tz.
+This library is freely available under the GNU Library General Public License,
+and is widely used in GNU/Linux systems.
+
+The Web has several other sources for time zone and daylight saving time data.
+Here are some recent links that may be of interest.
+
Web pages using recent versions of the tz database
+
+
Date and Time Gateway is a
+text-based point-and-click interface to tables of current time
+throughout the world.
+
CGI/1.0
+URL Timezone Converter is a similar interface, with source code
+written in Perl, using what Paul
+Stewart calls the "20-line hack no one will let me forget".
+
World Time Zones
+contains US Naval Observatory data, used as the source
+for the usno* files in the tz distribution.
+
The International Air Transport Association
+publishes the IATA Standard Schedules Information Manual (SSIM),
+which gives current time zone rules for
+all the airports served by commercial aviation.
+
+
Maps
+
+
The United States Central Intelligence Agency publishes a time
+zone map; the
+
+Perry-Castañeda Library Map Collection
+of the University of Texas at Austin has on-line copies of
+recent editions.
+The pictorial quality is good,
+but the maps do not indicate summer time,
+and parts of the data are a few years out of date.
+
World time zones map with
+current time
+has several fancy time zone maps; it covers Russia particularly well.
+The maps' pictorial quality is not quite as good as the CIA's
+and (as usual with maps) the maps are not quite up to date.
+
The
+Time of Internet
+contains good descriptions of Time Zones and daylight saving time,
+with diagrams.
+The time zone map is out of date, however.
+
A few countries have well-documented histories of legal time.
+