Add zoneinfo sources.
This commit is contained in:
68
src/share/zoneinfo/Makefile
Normal file
68
src/share/zoneinfo/Makefile
Normal file
@@ -0,0 +1,68 @@
|
||||
# @(#)Makefile 1.6 Makefile 1997/12/28
|
||||
|
||||
DESTDIR=
|
||||
|
||||
# If you want something other than Western United States time used on your
|
||||
# system, change the line below (after finding the zone you want in the
|
||||
# time zone files, or adding it to a time zone file).
|
||||
# Alternately, if you discover you've got the wrong time zone, you can just
|
||||
# install -c -m 444 /usr/share/zoneinfo/right_zone /etc/localtime
|
||||
|
||||
LOCALTIME= US/Pacific
|
||||
|
||||
# If you want code inspired by certain emerging standards, add
|
||||
# -DSTD_INSPIRED
|
||||
# to the end of the "CFLAGS=" line.
|
||||
#
|
||||
# If you want to handle solar-time-based time zones, remove the
|
||||
# "#define NOSOLAR" from the include file usr/include/tzfile.h.
|
||||
# (and add solar87 to the DATA= line below).
|
||||
|
||||
CFLAGS= -O
|
||||
SEPFLAG=-i
|
||||
LINTFLAGS= -phbaxc
|
||||
CC= cc
|
||||
|
||||
TZCSRCS= zic.c scheck.c ialloc.c
|
||||
TZCOBJS= zic.o scheck.o ialloc.o
|
||||
TZDSRCS= zdump.c ialloc.c
|
||||
TZDOBJS= zdump.o ialloc.o
|
||||
SOURCES= zic.c zdump.c scheck.c ialloc.c
|
||||
DATA= asia australasia europe etcetera northamerica \
|
||||
pacificnew systemv
|
||||
ZICMAN= zic.0
|
||||
ZICMANSRC= zic.8
|
||||
ZDUMAN= zdump.0
|
||||
ZDUMANSRC= zdump.8
|
||||
MAN= $(ZICMAN) $(ZDUMAN)
|
||||
MANSRC= $(ZICMANSRC) $(ZDUMAN)
|
||||
SHARDIR= ${DESTDIR}/usr/share/zoneinfo
|
||||
MANDIR= ${DESTDIR}/usr/man/cat8
|
||||
|
||||
all: zdump zic ${ZICMAN} ${ZDUMAN}
|
||||
|
||||
install: zic $(DATA) $(MAN)
|
||||
(umask 22; ./zic -d ${SHARDIR} $(DATA))
|
||||
install -c -m 444 -o bin -g bin ${SHARDIR}/${LOCALTIME} ${DESTDIR}/etc/localtime
|
||||
install -c -m 444 -o bin -g bin $(ZICMAN) ${MANDIR}/${ZICMAN}
|
||||
install -c -m 444 -o bin -g bin $(ZDUMAN) ${MANDIR}/${ZDUMAN}
|
||||
install -c -s -m 755 -o bin -g bin zic ${DESTDIR}/usr/sbin/zic
|
||||
|
||||
zdump.0: $(ZDUMANSRC)
|
||||
/usr/man/manroff $(ZDUMANSRC) > $(ZDUMAN)
|
||||
|
||||
zic.0: $(ZICMANSRC)
|
||||
/usr/man/manroff $(ZICMANSRC) > $(ZICMAN)
|
||||
|
||||
zdump: $(TZDOBJS)
|
||||
$(CC) $(CFLAGS) $(LFLAGS) $(SEPFLAG) $(TZDOBJS) -o $@
|
||||
|
||||
zic: $(TZCOBJS)
|
||||
$(CC) $(CFLAGS) $(LFLAGS) $(SEPFLAG) $(TZCOBJS) -o $@
|
||||
|
||||
lint: $(TZCSRCS) $(TZDSRCS)
|
||||
lint $(LINTFLAGS) $(CFLAGS) $(TZCSRCS)
|
||||
lint $(LINTFLAGS) $(CFLAGS) $(TZDSRCS)
|
||||
|
||||
clean:
|
||||
rm -f *.o zdump zic $(ZICMAN) $(ZDUMAN)
|
||||
41
src/share/zoneinfo/README
Normal file
41
src/share/zoneinfo/README
Normal file
@@ -0,0 +1,41 @@
|
||||
@(#)README 3.2 1996/11/29
|
||||
|
||||
Please send comments or information to
|
||||
seismo!elsie!tz
|
||||
for forwarding to folks interested in time zone matters.
|
||||
|
||||
Be sure to read the comments in "Makefile" and make any changes
|
||||
needed to make things right for your system.
|
||||
|
||||
This version of the time zone software uses a new format
|
||||
(based on the work of Guy Harris, a.k.a guy@sun.UUCP)
|
||||
for the time zone information files. They are stored in a
|
||||
directory named "/usr/share/zoneinfo".
|
||||
If you've already compiled programs with older time zone software,
|
||||
you may need to make a copy of /usr/share/zoneinfo to the old location.
|
||||
|
||||
For better compatability with other versions of time conversion functions,
|
||||
the time zone abbreviation to be used with localtime's return value is now
|
||||
pointed to by one of the two elements of the (char *) array tzname, rather
|
||||
than by the (char *) tz_abbr. If you have code that uses tz_abbr, add a
|
||||
-DTZA_COMPAT
|
||||
to the end of the
|
||||
CFLAGS=
|
||||
line in "Makefile".
|
||||
|
||||
To use the new functions, use a "-lz" option when compiling or linking.
|
||||
|
||||
Historical local time information has been included here not because it
|
||||
is particularly useful, but rather to:
|
||||
|
||||
* give an idea of the variety of local time rules that have
|
||||
existed in the past and thus an idea of the variety that may be
|
||||
expected in the future;
|
||||
|
||||
* provide a test of the generality of the local time rule description
|
||||
system.
|
||||
|
||||
The information in the time zone data files is by no means authoritative;
|
||||
if you know that the rules are different from those in a file, by all means
|
||||
feel free to change file (and please send the changed version to seismo!elsie!tz
|
||||
for use in the future). Europeans take note!
|
||||
130
src/share/zoneinfo/Theory
Normal file
130
src/share/zoneinfo/Theory
Normal file
@@ -0,0 +1,130 @@
|
||||
@(#)Theory 3.2 1996/11/29
|
||||
|
||||
These time and date functions are much like the System V Release 2.0 (SVR2)
|
||||
time and date functions; there are a few additions and changes to extend
|
||||
the usefulness of the SVR2 functions:
|
||||
|
||||
* In SVR2, time display in a process is controlled by the environment
|
||||
variable TZ, which "must be a three-letter time zone name, followed
|
||||
by a number representing the difference between local time and
|
||||
Greenwich Mean Time in hours, followed by an optional three-letter
|
||||
name for a daylight time zone;" when the optional daylight time zone is
|
||||
present, "standard U.S.A. Daylight Savings Time conversion is applied."
|
||||
This means that SVR2 can't deal with other (for example, Australian)
|
||||
daylight savings time rules, or situations where more than two
|
||||
time zone abbreviations are used in an area.
|
||||
|
||||
* In SVR2, time conversion information is compiled into each program
|
||||
that does time conversion. This means that when time conversion
|
||||
rules change (as in the United States in 1987), all programs that
|
||||
do time conversion must be recompiled to ensure proper results.
|
||||
|
||||
* In SVR2, time conversion fails for near-minimum or near-maximum
|
||||
time_t values when doing conversions for places that don't use GMT.
|
||||
|
||||
* In SVR2, there's no tamper-proof way for a process to learn the
|
||||
system's best idea of local wall clock. (This is important for
|
||||
applications that an administrator wants used only at certain times--
|
||||
without regard to whether the user has fiddled the "TZ" environment
|
||||
variable. While an administrator can "do everything in GMT" to get
|
||||
around the problem, doing so is inconvenient and precludes handling
|
||||
daylight savings time shifts--as might be required to limit phone
|
||||
calls to off-peak hours.)
|
||||
|
||||
These are the changes that have been made to the SVR2 functions:
|
||||
|
||||
* The "TZ" environment variable is used in generating the name of a file
|
||||
from which time zone information is read; "TZ" is no longer constrained
|
||||
to be a three-letter time zone name followed by a number of hours and
|
||||
an optional three-letter daylight time zone name. The daylight saving
|
||||
time rules to be used for a particular time zone are encoded in the
|
||||
time zone file; the format of the file allows U.S., Australian, and
|
||||
other rules to be encoded, and allows for situations where more than
|
||||
two time zone abbreviations are used.
|
||||
|
||||
It was recognized that allowing the "TZ" environment variable to
|
||||
take on values such as "US/Eastern" might cause "old" programs
|
||||
(that expect "TZ" to have a certain form) to operate incorrectly;
|
||||
consideration was given to using some other environment variable
|
||||
(for example, "TIMEZONE") to hold the string used to generate the
|
||||
time zone information file name. In the end, however, it was decided
|
||||
to continue using "TZ": it is widely used for time zone purposes;
|
||||
separately maintaining both "TZ" and "TIMEZONE" seemed a nuisance;
|
||||
and systems where "new" forms of "TZ" might cause problems can simply
|
||||
give time zone files names such as "EST5EDT" which can be used both by
|
||||
"new" programs (as file names) and "old" programs (as zone names and
|
||||
offsets).
|
||||
|
||||
* To handle places where more than two time zone abbreviations are used,
|
||||
the functions "localtime" and "gmtime" set tzname[tmp->tm_isdst]
|
||||
(where "tmp" is the value the function returns) to the time zone
|
||||
abbreviation to be used. This differs from SVR2, where the elements
|
||||
of tzname are only changed as a result of calls to tzset.
|
||||
|
||||
* Since the "TZ" environment variable can now be used to control time
|
||||
conversion, the "daylight" and "timezone" variables are no longer
|
||||
needed or supported. (You can use a compile-time option to cause
|
||||
these variables to be defined and to be set by "tzset"; however, their
|
||||
values will not be used by "localtime.")
|
||||
|
||||
* The "localtime" function has been set up to deliver correct results
|
||||
for near-minimum or near-maximum time_t values. (A comment in the
|
||||
source code tells how to get compatibly wrong results).
|
||||
|
||||
* A function "tzsetwall" has been added to arrange for the system's
|
||||
best approximation to local wall clock time to be delivered by
|
||||
subsequent calls to "localtime." Source code for portable
|
||||
applications that "must" run on local wall clock time should call
|
||||
"tzsetwall();" if such code is moved to "old" systems that don't provide
|
||||
tzsetwall, you won't be able to generate an executable program.
|
||||
(These time zone functions also arrange for local wall clock time to be
|
||||
used if tzset is called--directly or indirectly--and there's no "TZ"
|
||||
environment variable; portable applications should not, however, rely
|
||||
on this behavior since it's not the way SVR2 systems behave.)
|
||||
|
||||
Points of interest to folks with Version 7 or BSD systems:
|
||||
|
||||
* The BSD "timezone" function is not present in this package;
|
||||
it's impossible to reliably map timezone's arguments (a "minutes west
|
||||
of GMT" value and a "daylight saving time in effect" flag) to a
|
||||
time zone abbreviation, and we refuse to guess.
|
||||
Programs that in the past used the timezone function may now examine
|
||||
tzname[localtime(&clock)->tm_isdst] to learn the correct time
|
||||
zone abbreviation to use. Alternatively, use localtime(&clock)->tm_zone
|
||||
if this has been enabled.
|
||||
|
||||
* The BSD gettimeofday function is not used in this package;
|
||||
this lets users control the time zone used in doing time conversions.
|
||||
Users who don't try to control things (that is, users who do not set
|
||||
the environment variable TZ) get the time conversion specified in the
|
||||
file "/etc/localtime"; see the time zone compiler writeup for
|
||||
information on how to initialize this file.
|
||||
|
||||
* The BSD "dysize" function is only included if the preprocessor symbol
|
||||
BSD_COMPAT is defined. For a year y, the BSD code returns the value
|
||||
((y % 4) == 0) : 366 : 365
|
||||
while this code returns the value
|
||||
(((y) % 4) == 0 && ((y) % 100) != 0 || ((y) % 400) == 0) ? 366 : 365
|
||||
There's a comment in the code telling how to get the BSD value.
|
||||
|
||||
The functions that are conditionally compiled if STD_INSPIRED is defined should,
|
||||
at this point, be looked on primarily as food for thought. They are not in
|
||||
any sense "standard compatible"--some are not, in fact, specified in *any*
|
||||
standard. They do, however, represent responses of various authors to
|
||||
standardization proposals.
|
||||
|
||||
Other time conversion proposals, in particular the one developed by folks at
|
||||
Hewlett Packard, offer a wider selection of functions that provide capabilities
|
||||
beyond those provided here. The absence of such functions from this package
|
||||
is not meant to discourage the development, standardization, or use of such
|
||||
functions. Rather, their absence reflects the decision to make this package
|
||||
close to SVR2 (with the exceptions outlined above) to ensure its broad
|
||||
acceptability. If more powerful time conversion functions can be standardized,
|
||||
so much the better.
|
||||
|
||||
It's probably not wise to standardize everything in this package.
|
||||
While the command
|
||||
nroff -man newctime.3
|
||||
produces a document that describes this package, the command
|
||||
nroff -man -rX3J11 newctime.3
|
||||
produces a document that describes the "standardizable" parts.
|
||||
5
src/share/zoneinfo/asia
Normal file
5
src/share/zoneinfo/asia
Normal file
@@ -0,0 +1,5 @@
|
||||
# @(#)asia 3.1
|
||||
# Incorporates data for Singapore from Robert Elz' asia 1.1
|
||||
# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
|
||||
Zone Japan 9:00 - JST
|
||||
Zone Singapore 8:00 - SST
|
||||
59
src/share/zoneinfo/australasia
Normal file
59
src/share/zoneinfo/australasia
Normal file
@@ -0,0 +1,59 @@
|
||||
# @(#)australasia 3.1
|
||||
# Incorporates updates for Australia from Robert Elz' australia 1.1
|
||||
# and further updates from the Australian consulate.
|
||||
|
||||
# Australian Data (for states with DST), standard rules
|
||||
# Includes shift in 1987 to follow Vic/NSW rules for ending DST,
|
||||
# and shift in 1986 to start DST earlier.
|
||||
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
Rule Oz 1971 1985 - Oct lastSun 2:00 1:00 -
|
||||
Rule Oz 1986 max - Oct Sun<=24 2:00 1:00 -
|
||||
Rule Oz 1972 only - Feb 27 3:00 0 -
|
||||
Rule Oz 1973 1986 - Mar Sun>=1 3:00 0 -
|
||||
Rule Oz 1987 max - Mar Sun<=21 3:00 0 -
|
||||
|
||||
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
|
||||
Zone Australia/Tasmania 10:00 Oz EST
|
||||
Zone Australia/Queensland 10:00 - EST # No DST here
|
||||
Zone Australia/North 9:30 - CST # No DST here
|
||||
Zone Australia/West 8:00 - WST # No DST here
|
||||
Zone Australia/South 9:30 Oz CST
|
||||
|
||||
# Victoria and New South Wales made the jump to a later ending date for
|
||||
# DST in 1986 rather than 1987. New South Wales also had another variation
|
||||
# in 1983, but the details of that are unknown to the authors at this time.
|
||||
|
||||
Zone Australia/Victoria 10:00 Oz EST 1985 Oct lastSun 2:00
|
||||
10:00 1:00 EST 1986 Mar Sun<=21 3:00
|
||||
10:00 Oz EST
|
||||
Link Australia/Victoria Australia/NSW
|
||||
|
||||
# New Zealand, from Elz' asia 1.1
|
||||
# Elz says "no guarantees"
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
Rule NZ 1974 max - Oct lastSun 2:00 1:00 D
|
||||
Rule NZ 1975 max - Mar Sun>=1 3:00 0 S
|
||||
|
||||
# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
|
||||
Zone NZ 12:00 NZ NZ%sT # New Zealand
|
||||
|
||||
#
|
||||
# A footnote here:
|
||||
#
|
||||
# . . .
|
||||
# Date: Thu, j19 Feb 87 12:02:17 EST
|
||||
# From: Bradley White <seismo!k.cs.cmu.edu!bww>
|
||||
# . . .
|
||||
# I am including a description of Australian time zones. . .
|
||||
# this stuff is definitely accurate.
|
||||
# . . .
|
||||
# a) Australian Eastern Time: (EST = GMT+10:00, EDT = GMT+11:00)
|
||||
# . . .
|
||||
# Summer of 86/87 - present (current legislation):
|
||||
# third Sun Oct 02:00 EST -> third LSun Mar 02:00 EST
|
||||
#
|
||||
# If this turns out to be true, substitute Sun<=21 (third Sunday in October)
|
||||
# for Sun<=24 (next-to-last Sunday in October) above. . .some time before
|
||||
# October 1988, the first time it makes a difference.
|
||||
#
|
||||
40
src/share/zoneinfo/etcetera
Normal file
40
src/share/zoneinfo/etcetera
Normal file
@@ -0,0 +1,40 @@
|
||||
# @(#)etcetera 3.1
|
||||
|
||||
Zone GMT 0 - GMT
|
||||
|
||||
#
|
||||
# Names for zones that might exist, just so people can set a timezone
|
||||
# that's right for their area, even if it doesn't have a name or dst rules
|
||||
# (half hour zones are too much to bother with -- when someone asks!)
|
||||
#
|
||||
|
||||
Zone GMT-12 -12 - GMT-1200
|
||||
Zone GMT-11 -11 - GMT-1100
|
||||
Zone GMT-10 -10 - GMT-1000
|
||||
Zone GMT-9 -9 - GMT-0900
|
||||
Zone GMT-8 -8 - GMT-0800
|
||||
Zone GMT-7 -7 - GMT-0700
|
||||
Zone GMT-6 -6 - GMT-0600
|
||||
Zone GMT-5 -5 - GMT-0500
|
||||
Zone GMT-4 -4 - GMT-0400
|
||||
Zone GMT-3 -3 - GMT-0300
|
||||
Zone GMT-2 -2 - GMT-0200
|
||||
Zone GMT-1 -1 - GMT-0100
|
||||
Zone GMT+1 1 - GMT+0100
|
||||
Zone GMT+2 2 - GMT+0200
|
||||
Zone GMT+3 3 - GMT+0300
|
||||
Zone GMT+4 4 - GMT+0400
|
||||
Zone GMT+5 5 - GMT+0500
|
||||
Zone GMT+6 6 - GMT+0600
|
||||
Zone GMT+7 7 - GMT+0700
|
||||
Zone GMT+8 8 - GMT+0800
|
||||
Zone GMT+9 9 - GMT+0900
|
||||
Zone GMT+10 10 - GMT+1000
|
||||
Zone GMT+11 11 - GMT+1100
|
||||
Zone GMT+12 12 - GMT+1200
|
||||
Zone GMT+13 13 - GMT+1300 # GMT+12 with DST
|
||||
|
||||
Link GMT UTC
|
||||
Link GMT UCT
|
||||
Link GMT Universal
|
||||
Link GMT Greenwich
|
||||
125
src/share/zoneinfo/europe
Normal file
125
src/share/zoneinfo/europe
Normal file
@@ -0,0 +1,125 @@
|
||||
# @(#)europe 3.1
|
||||
|
||||
# Europe, updated from 4.3BSD and various contributors
|
||||
# International country codes are used to identify countries' rules and
|
||||
# zones
|
||||
#
|
||||
# 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 seismo!elsie!tz
|
||||
# for general use in the future). The use of 1986 as starting years below
|
||||
# is conservative.
|
||||
#
|
||||
# One source shows that Bulgaria, Cyprus, Finland, and Greece observe DST from
|
||||
# the last Sunday in March to the last Sunday in September in 1986.
|
||||
# The source shows Romania changing a day later than everybody else.
|
||||
#
|
||||
# According to Bernard Sieloff's source, Poland is in the MET time zone but
|
||||
# uses the WE DST rules. The Western USSR uses EET+1 and ME DST rules.
|
||||
# Bernard Sieloff's source claims Romania switches on the same day, but at
|
||||
# 00:00 standard time (i.e., 01:00 DST). It also claims that Turkey
|
||||
# switches on the same day, but switches on at 01:00 standard time
|
||||
# and off at 00:00 standard time (i.e., 01:00 DST)
|
||||
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
Rule GB-Eire 1986 max - Mar lastSun 1:00s 1:00 BST
|
||||
Rule GB-Eire 1986 max - Oct lastSun 1:00s 0 GMT
|
||||
|
||||
Rule W-Eur 1986 max - Mar lastSun 1:00s 1:00 " DST"
|
||||
Rule W-Eur 1986 max - Sep lastSun 1:00s 0 -
|
||||
|
||||
Rule M-Eur 1986 max - Mar lastSun 2:00s 1:00 " DST"
|
||||
Rule M-Eur 1986 max - Sep lastSun 2:00s 0 -
|
||||
|
||||
Rule E-Eur 1986 max - Mar lastSun 3:00s 1:00 " DST"
|
||||
Rule E-Eur 1986 max - Sep lastSun 3:00s 0 -
|
||||
|
||||
Rule Turkey 1986 max - Mar lastSun 1:00 1:00 " DST"
|
||||
Rule Turkey 1986 max - Sep lastSun 1:00 0 -
|
||||
|
||||
Rule W-SU 1986 max - Mar lastSun 2:00s 1:00 " DST"
|
||||
Rule W-SU 1986 max - Sep lastSun 2:00s 0 -
|
||||
|
||||
# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
|
||||
Zone GB-Eire 0:00 GB-Eire %s
|
||||
Zone WET 0:00 W-Eur WET%s
|
||||
Zone Iceland 0:00 - WET
|
||||
Zone MET 1:00 M-Eur MET%s
|
||||
Zone Poland 1:00 W-Eur MET%s
|
||||
Zone EET 2:00 E-Eur EET%s
|
||||
Zone Turkey 3:00 Turkey EET%s
|
||||
Zone W-SU 3:00 M-Eur ????
|
||||
|
||||
# Tom Hoffman says that MET is also known as Central European Time
|
||||
|
||||
Link MET CET
|
||||
|
||||
#
|
||||
# And now, letters on the subject. . .
|
||||
#
|
||||
###############################################################################
|
||||
#
|
||||
# ...
|
||||
# Date: Wed, 28 Jan 87 16:56:27 -0100
|
||||
# From: seismo!mcvax!cgcha!wtho (Tom Hofmann)
|
||||
# Message-Id: <8701281556.AA22174@cgcha.uucp>
|
||||
# ...
|
||||
# Subject: Time zone handling
|
||||
# ...
|
||||
#
|
||||
# ...the European time rules are...standardized since 1981, when
|
||||
# most European counrties started DST. Before that year, only
|
||||
# a few countries (UK, France, Italy) had DST, each according
|
||||
# to own national rules. In 1981, however, DST started on
|
||||
# 'Apr firstSun', and not on 'Mar lastSun' as in the following
|
||||
# years...
|
||||
# But also since 1981 there are some more national exceptions
|
||||
# than listed in 'europe': Switzerland, for example, joined DST
|
||||
# one year later, Denmark ended DST on 'Oct 1' instead of 'Sep
|
||||
# lastSun' in 1981---I don't know how they handle now.
|
||||
#
|
||||
# Finally, DST ist always from 'Apr 1' to 'Oct 1' in the
|
||||
# Soviet Union (as far as I know).
|
||||
#
|
||||
# Tom Hofmann, Scientific Computer Center, CIBA-GEIGY AG,
|
||||
# 4002 Basle, Switzerland
|
||||
# UUCP: ...!mcvax!cernvax!cgcha!wtho
|
||||
#
|
||||
###############################################################################
|
||||
#
|
||||
# ...
|
||||
# Date: Wed, 4 Feb 87 22:35:22 +0100
|
||||
# From: seismo!mcvax!cwi.nl!dik (Dik T. Winter)
|
||||
# Message-Id: <8702042135.AA23919@zuring.cwi.nl>
|
||||
# ...
|
||||
# Subject: timezones
|
||||
# ...
|
||||
#
|
||||
# The information from Tom Hofmann is (as far as I know) not entirely correct.
|
||||
# After a request from chongo at amdahl I tried to retrieve all information
|
||||
# about DST in Europe. I was able to find all from about 1969.
|
||||
#
|
||||
# ...standardization
|
||||
# on DST in Europe started in about 1977 with switches on first Sunday in
|
||||
# April and last Sunday in September. In UK it was from last but 1 Sunday
|
||||
# in march to last Sunday in October. In 1981 UK joined Europe insofar that
|
||||
# the starting day for both shifted to last Sunday in March. And from 1982
|
||||
# the whole of Europe used DST, with switch dates April 1 and October 1 in
|
||||
# the Sovjet Union. In 1985 the SU reverted to standard Europen switch
|
||||
# dates. Note that currently in the UK the switch back date appears not
|
||||
# to be the last Sunday in October, but 4 weeks after the last Sunday in
|
||||
# September (withness 1982 and 1983 with terminating days October 24 and 23).
|
||||
#
|
||||
# It should also be remembered that time-zones are not constants; e.g.
|
||||
# Portugal switched in 1976 from MET (or CET) to WET with DST, and the UK
|
||||
# used MET throughout from 1967 to 1969, and WET with DST before and after
|
||||
# that time. Note also that though there were rules for switch dates not
|
||||
# all countries abided to these dates, and many individual deviations
|
||||
# occurred, though not since 1982 I believe. Another note: it is always
|
||||
# assumed that DST is 1 hour ahead of normal time, this need not be the
|
||||
# case; at least in the Netherlands there have been times when DST was 2 hours
|
||||
# in advance of normal time.
|
||||
#
|
||||
# ...
|
||||
# dik t. winter, cwi, amsterdam, nederland
|
||||
# INTERNET : dik@cwi.nl
|
||||
# BITNET/EARN: dik@mcvax
|
||||
88
src/share/zoneinfo/ialloc.c
Normal file
88
src/share/zoneinfo/ialloc.c
Normal file
@@ -0,0 +1,88 @@
|
||||
/*
|
||||
* @(#)ialloc.c 1.1 ialloc.c 3/4/87
|
||||
*/
|
||||
|
||||
/*LINTLIBRARY*/
|
||||
|
||||
#include "stdio.h"
|
||||
|
||||
#ifndef alloc_t
|
||||
#define alloc_t unsigned
|
||||
#endif /* !alloc_t */
|
||||
|
||||
#ifdef MAL
|
||||
#define NULLMAL(x) ((x) == NULL || (x) == MAL)
|
||||
#else /* !MAL */
|
||||
#define NULLMAL(x) ((x) == NULL)
|
||||
#endif /* !MAL */
|
||||
|
||||
extern char * calloc();
|
||||
extern char * malloc();
|
||||
extern char * realloc();
|
||||
extern char * strcpy();
|
||||
|
||||
char *
|
||||
imalloc(n)
|
||||
{
|
||||
#ifdef MAL
|
||||
register char * result;
|
||||
|
||||
if (n == 0)
|
||||
n = 1;
|
||||
result = malloc((alloc_t) n);
|
||||
return (result == MAL) ? NULL : result;
|
||||
#else /* !MAL */
|
||||
if (n == 0)
|
||||
n = 1;
|
||||
return malloc((alloc_t) n);
|
||||
#endif /* !MAL */
|
||||
}
|
||||
|
||||
char *
|
||||
icalloc(nelem, elsize)
|
||||
{
|
||||
if (nelem == 0 || elsize == 0)
|
||||
nelem = elsize = 1;
|
||||
return calloc((alloc_t) nelem, (alloc_t) elsize);
|
||||
}
|
||||
|
||||
char *
|
||||
irealloc(pointer, size)
|
||||
char * pointer;
|
||||
{
|
||||
if (NULLMAL(pointer))
|
||||
return imalloc(size);
|
||||
if (size == 0)
|
||||
size = 1;
|
||||
return realloc(pointer, (alloc_t) size);
|
||||
}
|
||||
|
||||
char *
|
||||
icatalloc(old, new)
|
||||
char * old;
|
||||
char * new;
|
||||
{
|
||||
register char * result;
|
||||
register oldsize, newsize;
|
||||
|
||||
oldsize = NULLMAL(old) ? 0 : strlen(old);
|
||||
newsize = NULLMAL(new) ? 0 : strlen(new);
|
||||
if ((result = irealloc(old, oldsize + newsize + 1)) != NULL)
|
||||
if (!NULLMAL(new))
|
||||
(void) strcpy(result + oldsize, new);
|
||||
return result;
|
||||
}
|
||||
|
||||
char *
|
||||
icpyalloc(string)
|
||||
char * string;
|
||||
{
|
||||
return icatalloc((char *) NULL, string);
|
||||
}
|
||||
|
||||
ifree(p)
|
||||
char * p;
|
||||
{
|
||||
if (!NULLMAL(p))
|
||||
free(p);
|
||||
}
|
||||
96
src/share/zoneinfo/northamerica
Normal file
96
src/share/zoneinfo/northamerica
Normal file
@@ -0,0 +1,96 @@
|
||||
# @(#)northamerica 3.1
|
||||
|
||||
# Despite the performance of existing (4.[123]BSD, System V Release 2.0) code,
|
||||
# US Daylight Saving Time ended on the last Sunday of *October* in 1974.
|
||||
# See, for example, the front page of the Saturday, October 26, 1974
|
||||
# and Sunday, October 27, 1974 editions of the Washington Post.
|
||||
|
||||
# Note also this from seismo!munnari!kre:
|
||||
# "I recall also being told by someone once that Canada didn't have
|
||||
# the DST variations in 74/75 that the US did, but I am not nearly
|
||||
# sure enough of this to add anything."
|
||||
# The above has been confirmed by Bob Devine; we'll go with it here.
|
||||
|
||||
# Before the Uniform Time Act of 1966 took effect in 1967, observance of
|
||||
# Daylight Saving Time in the US was by local option, except during wartime.
|
||||
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
Rule US 1918 1919 - Mar lastSun 2:00 1:00 D
|
||||
Rule US 1918 1919 - Oct lastSun 2:00 0 S
|
||||
Rule US 1942 only - Feb 9 2:00 1:00 W # War
|
||||
Rule US 1945 only - Sep 30 2:00 0 S
|
||||
Rule US 1967 max - Oct lastSun 2:00 0 S
|
||||
Rule US 1967 1973 - Apr lastSun 2:00 1:00 D
|
||||
Rule US 1974 only - Jan 6 2:00 1:00 D
|
||||
Rule US 1975 only - Feb 23 2:00 1:00 D
|
||||
Rule US 1976 1986 - Apr lastSun 2:00 1:00 D
|
||||
Rule US 1987 max - Apr Sun>=1 2:00 1:00 D
|
||||
|
||||
###############################################################################
|
||||
|
||||
# New names
|
||||
|
||||
# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
|
||||
Zone US/Eastern -5:00 US E%sT
|
||||
Zone US/Central -6:00 US C%sT
|
||||
Zone US/Mountain -7:00 US M%sT
|
||||
Zone US/Pacific -8:00 US P%sT
|
||||
Zone US/Yukon -9:00 US Y%sT
|
||||
|
||||
# Mainland US areas that are always Standard as of 1986.
|
||||
|
||||
Zone US/East-Indiana -5:00 US E%sT 1946
|
||||
-5:00 - EST # Always EST as of 1986
|
||||
Zone US/Arizona -7:00 US M%sT 1946
|
||||
-7:00 - MST # Always MST as of 1986
|
||||
|
||||
# And then there's Hawaii.
|
||||
# DST was observed for one day in 1933;
|
||||
# Standard time was change by half an hour in 1947;
|
||||
# it's always standard as of 1986.
|
||||
|
||||
Zone US/Hawaii -10:30 US H%sT 1933 Apr 30 2:00
|
||||
-10:30 1:00 HDT 1933 May 1 2:00
|
||||
-10:30 US H%sT 1947 Jun 8 2:00
|
||||
-10:00 - HST
|
||||
|
||||
# Old names, for S5 users
|
||||
|
||||
# Link LINK-FROM LINK-TO
|
||||
Link US/Eastern EST5EDT
|
||||
Link US/Central CST6CDT
|
||||
Link US/Mountain MST7MDT
|
||||
Link US/Pacific PST8PDT
|
||||
Link US/East-Indiana EST
|
||||
Link US/Arizona MST
|
||||
Link US/Hawaii HST
|
||||
|
||||
################################################################################
|
||||
|
||||
# Canada is reportedly lots easier than the US--leastways since 1951.
|
||||
# I don't know what they did before then.
|
||||
# 4.3BSD claims that it's perfectly regular.
|
||||
# According to a posting in "comp.bugs.misc", "comp.unix.wizards", etc.
|
||||
# on February 8, 1987, by Dave Sherman of the Law Society of Upper Canada,
|
||||
# "...Canada (well, Ontario and at least some of the other provinces) are
|
||||
# adopting the new daylight savings time rules...". We assume all of
|
||||
# Canada is doing so.
|
||||
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
Rule Canada 1969 max - Oct lastSun 2:00 0 S
|
||||
Rule Canada 1969 1986 - Apr lastSun 2:00 1:00 D
|
||||
Rule Canada 1987 max - Apr Sun>=1 2:00 1:00 D
|
||||
|
||||
# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
|
||||
# Bob Devine says that DST *is* observed in Newfoundland
|
||||
Zone Canada/Newfoundland -3:30 Canada N%sT
|
||||
Zone Canada/Atlantic -4:00 Canada A%sT
|
||||
Zone Canada/Eastern -5:00 Canada E%sT
|
||||
Zone Canada/Central -6:00 Canada C%sT
|
||||
Zone Canada/Mountain -7:00 Canada M%sT
|
||||
Zone Canada/Pacific -8:00 Canada P%sT
|
||||
Zone Canada/Yukon -9:00 Canada Y%sT
|
||||
|
||||
################################################################################
|
||||
|
||||
# ?Mexico? !Quien sabe!
|
||||
13
src/share/zoneinfo/pacificnew
Normal file
13
src/share/zoneinfo/pacificnew
Normal file
@@ -0,0 +1,13 @@
|
||||
# @(#)pacificnew 3.1
|
||||
|
||||
# "Pacific Presidential Election Time" has been contemplated by the US Congress
|
||||
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
Rule Twilite 1987 max - Apr Sun>=1 2:00 1:00 D
|
||||
Rule Twilite 1987 max uspres Oct lastSun 2:00 1:00 PE
|
||||
Rule Twilite 1987 max uspres Nov Sun>=7 2:00 0 S
|
||||
Rule Twilite 1987 max nonpres Oct lastSun 2:00 0 S
|
||||
|
||||
# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
|
||||
Zone US/Pacific-New -8:00 US P%sT 1987
|
||||
-8:00 Twilite P%sT
|
||||
59
src/share/zoneinfo/scheck.c
Normal file
59
src/share/zoneinfo/scheck.c
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* @(#)scheck.c 1.1 scheck.c 3/4/87
|
||||
*/
|
||||
|
||||
/*LINTLIBRARY*/
|
||||
|
||||
#include "stdio.h"
|
||||
#include "ctype.h"
|
||||
|
||||
extern char * imalloc();
|
||||
|
||||
char *
|
||||
scheck(string, format)
|
||||
char * string;
|
||||
char * format;
|
||||
{
|
||||
register char * fbuf;
|
||||
register char * fp;
|
||||
register char * tp;
|
||||
register int c;
|
||||
register char * result;
|
||||
char dummy;
|
||||
|
||||
result = "";
|
||||
if (string == NULL || format == NULL)
|
||||
return result;
|
||||
fbuf = imalloc(2 * strlen(format) + 4);
|
||||
if (fbuf == NULL)
|
||||
return result;
|
||||
fp = format;
|
||||
tp = fbuf;
|
||||
while ((*tp++ = c = *fp++) != '\0') {
|
||||
if (c != '%')
|
||||
continue;
|
||||
if (*fp == '%') {
|
||||
*tp++ = *fp++;
|
||||
continue;
|
||||
}
|
||||
*tp++ = '*';
|
||||
if (*fp == '*')
|
||||
++fp;
|
||||
while (isascii(*fp) && isdigit(*fp))
|
||||
*tp++ = *fp++;
|
||||
if (*fp == 'l' || *fp == 'h')
|
||||
*tp++ = *fp++;
|
||||
else if (*fp == '[')
|
||||
do *tp++ = *fp++;
|
||||
while (*fp != '\0' && *fp != ']');
|
||||
if ((*tp++ = *fp++) == '\0')
|
||||
break;
|
||||
}
|
||||
*(tp - 1) = '%';
|
||||
*tp++ = 'c';
|
||||
*tp = '\0';
|
||||
if (sscanf(string, fbuf, &dummy) != 1)
|
||||
result = format;
|
||||
free(fbuf);
|
||||
return result;
|
||||
}
|
||||
386
src/share/zoneinfo/solar87
Normal file
386
src/share/zoneinfo/solar87
Normal file
@@ -0,0 +1,386 @@
|
||||
# @(#)solar87 3.1
|
||||
|
||||
# So much for footnotes about Saudi Arabia.
|
||||
# Apparent noon times below are for Riyadh; your mileage will vary.
|
||||
# Times were computed using formulas in the U.S. Naval Observatory's
|
||||
# Almanac for Computers 1987; the formulas "will give EqT to an accuracy of
|
||||
# [plus or minus] two seconds during the current year."
|
||||
#
|
||||
# Rounding to the nearest five seconds results in fewer than
|
||||
# 256 different "time types"--a limit that's faced because time types are
|
||||
# stored on disk as unsigned chars.
|
||||
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
Rule sol87 1987 only - Jan 1 12:03:20s -0:03:20 -
|
||||
Rule sol87 1987 only - Jan 2 12:03:50s -0:03:50 -
|
||||
Rule sol87 1987 only - Jan 3 12:04:15s -0:04:15 -
|
||||
Rule sol87 1987 only - Jan 4 12:04:45s -0:04:45 -
|
||||
Rule sol87 1987 only - Jan 5 12:05:10s -0:05:10 -
|
||||
Rule sol87 1987 only - Jan 6 12:05:40s -0:05:40 -
|
||||
Rule sol87 1987 only - Jan 7 12:06:05s -0:06:05 -
|
||||
Rule sol87 1987 only - Jan 8 12:06:30s -0:06:30 -
|
||||
Rule sol87 1987 only - Jan 9 12:06:55s -0:06:55 -
|
||||
Rule sol87 1987 only - Jan 10 12:07:20s -0:07:20 -
|
||||
Rule sol87 1987 only - Jan 11 12:07:45s -0:07:45 -
|
||||
Rule sol87 1987 only - Jan 12 12:08:10s -0:08:10 -
|
||||
Rule sol87 1987 only - Jan 13 12:08:30s -0:08:30 -
|
||||
Rule sol87 1987 only - Jan 14 12:08:55s -0:08:55 -
|
||||
Rule sol87 1987 only - Jan 15 12:09:15s -0:09:15 -
|
||||
Rule sol87 1987 only - Jan 16 12:09:35s -0:09:35 -
|
||||
Rule sol87 1987 only - Jan 17 12:09:55s -0:09:55 -
|
||||
Rule sol87 1987 only - Jan 18 12:10:15s -0:10:15 -
|
||||
Rule sol87 1987 only - Jan 19 12:10:35s -0:10:35 -
|
||||
Rule sol87 1987 only - Jan 20 12:10:55s -0:10:55 -
|
||||
Rule sol87 1987 only - Jan 21 12:11:10s -0:11:10 -
|
||||
Rule sol87 1987 only - Jan 22 12:11:30s -0:11:30 -
|
||||
Rule sol87 1987 only - Jan 23 12:11:45s -0:11:45 -
|
||||
Rule sol87 1987 only - Jan 24 12:12:00s -0:12:00 -
|
||||
Rule sol87 1987 only - Jan 25 12:12:15s -0:12:15 -
|
||||
Rule sol87 1987 only - Jan 26 12:12:30s -0:12:30 -
|
||||
Rule sol87 1987 only - Jan 27 12:12:40s -0:12:40 -
|
||||
Rule sol87 1987 only - Jan 28 12:12:55s -0:12:55 -
|
||||
Rule sol87 1987 only - Jan 29 12:13:05s -0:13:05 -
|
||||
Rule sol87 1987 only - Jan 30 12:13:15s -0:13:15 -
|
||||
Rule sol87 1987 only - Jan 31 12:13:25s -0:13:25 -
|
||||
Rule sol87 1987 only - Feb 1 12:13:35s -0:13:35 -
|
||||
Rule sol87 1987 only - Feb 2 12:13:40s -0:13:40 -
|
||||
Rule sol87 1987 only - Feb 3 12:13:50s -0:13:50 -
|
||||
Rule sol87 1987 only - Feb 4 12:13:55s -0:13:55 -
|
||||
Rule sol87 1987 only - Feb 5 12:14:00s -0:14:00 -
|
||||
Rule sol87 1987 only - Feb 6 12:14:05s -0:14:05 -
|
||||
Rule sol87 1987 only - Feb 7 12:14:10s -0:14:10 -
|
||||
Rule sol87 1987 only - Feb 8 12:14:10s -0:14:10 -
|
||||
Rule sol87 1987 only - Feb 9 12:14:15s -0:14:15 -
|
||||
Rule sol87 1987 only - Feb 10 12:14:15s -0:14:15 -
|
||||
Rule sol87 1987 only - Feb 11 12:14:15s -0:14:15 -
|
||||
Rule sol87 1987 only - Feb 12 12:14:15s -0:14:15 -
|
||||
Rule sol87 1987 only - Feb 13 12:14:15s -0:14:15 -
|
||||
Rule sol87 1987 only - Feb 14 12:14:15s -0:14:15 -
|
||||
Rule sol87 1987 only - Feb 15 12:14:10s -0:14:10 -
|
||||
Rule sol87 1987 only - Feb 16 12:14:10s -0:14:10 -
|
||||
Rule sol87 1987 only - Feb 17 12:14:05s -0:14:05 -
|
||||
Rule sol87 1987 only - Feb 18 12:14:00s -0:14:00 -
|
||||
Rule sol87 1987 only - Feb 19 12:13:55s -0:13:55 -
|
||||
Rule sol87 1987 only - Feb 20 12:13:50s -0:13:50 -
|
||||
Rule sol87 1987 only - Feb 21 12:13:45s -0:13:45 -
|
||||
Rule sol87 1987 only - Feb 22 12:13:35s -0:13:35 -
|
||||
Rule sol87 1987 only - Feb 23 12:13:30s -0:13:30 -
|
||||
Rule sol87 1987 only - Feb 24 12:13:20s -0:13:20 -
|
||||
Rule sol87 1987 only - Feb 25 12:13:10s -0:13:10 -
|
||||
Rule sol87 1987 only - Feb 26 12:13:00s -0:13:00 -
|
||||
Rule sol87 1987 only - Feb 27 12:12:50s -0:12:50 -
|
||||
Rule sol87 1987 only - Feb 28 12:12:40s -0:12:40 -
|
||||
Rule sol87 1987 only - Mar 1 12:12:30s -0:12:30 -
|
||||
Rule sol87 1987 only - Mar 2 12:12:20s -0:12:20 -
|
||||
Rule sol87 1987 only - Mar 3 12:12:05s -0:12:05 -
|
||||
Rule sol87 1987 only - Mar 4 12:11:55s -0:11:55 -
|
||||
Rule sol87 1987 only - Mar 5 12:11:40s -0:11:40 -
|
||||
Rule sol87 1987 only - Mar 6 12:11:25s -0:11:25 -
|
||||
Rule sol87 1987 only - Mar 7 12:11:15s -0:11:15 -
|
||||
Rule sol87 1987 only - Mar 8 12:11:00s -0:11:00 -
|
||||
Rule sol87 1987 only - Mar 9 12:10:45s -0:10:45 -
|
||||
Rule sol87 1987 only - Mar 10 12:10:30s -0:10:30 -
|
||||
Rule sol87 1987 only - Mar 11 12:10:15s -0:10:15 -
|
||||
Rule sol87 1987 only - Mar 12 12:09:55s -0:09:55 -
|
||||
Rule sol87 1987 only - Mar 13 12:09:40s -0:09:40 -
|
||||
Rule sol87 1987 only - Mar 14 12:09:25s -0:09:25 -
|
||||
Rule sol87 1987 only - Mar 15 12:09:10s -0:09:10 -
|
||||
Rule sol87 1987 only - Mar 16 12:08:50s -0:08:50 -
|
||||
Rule sol87 1987 only - Mar 17 12:08:35s -0:08:35 -
|
||||
Rule sol87 1987 only - Mar 18 12:08:15s -0:08:15 -
|
||||
Rule sol87 1987 only - Mar 19 12:08:00s -0:08:00 -
|
||||
Rule sol87 1987 only - Mar 20 12:07:40s -0:07:40 -
|
||||
Rule sol87 1987 only - Mar 21 12:07:25s -0:07:25 -
|
||||
Rule sol87 1987 only - Mar 22 12:07:05s -0:07:05 -
|
||||
Rule sol87 1987 only - Mar 23 12:06:50s -0:06:50 -
|
||||
Rule sol87 1987 only - Mar 24 12:06:30s -0:06:30 -
|
||||
Rule sol87 1987 only - Mar 25 12:06:10s -0:06:10 -
|
||||
Rule sol87 1987 only - Mar 26 12:05:55s -0:05:55 -
|
||||
Rule sol87 1987 only - Mar 27 12:05:35s -0:05:35 -
|
||||
Rule sol87 1987 only - Mar 28 12:05:15s -0:05:15 -
|
||||
Rule sol87 1987 only - Mar 29 12:05:00s -0:05:00 -
|
||||
Rule sol87 1987 only - Mar 30 12:04:40s -0:04:40 -
|
||||
Rule sol87 1987 only - Mar 31 12:04:25s -0:04:25 -
|
||||
Rule sol87 1987 only - Apr 1 12:04:05s -0:04:05 -
|
||||
Rule sol87 1987 only - Apr 2 12:03:45s -0:03:45 -
|
||||
Rule sol87 1987 only - Apr 3 12:03:30s -0:03:30 -
|
||||
Rule sol87 1987 only - Apr 4 12:03:10s -0:03:10 -
|
||||
Rule sol87 1987 only - Apr 5 12:02:55s -0:02:55 -
|
||||
Rule sol87 1987 only - Apr 6 12:02:35s -0:02:35 -
|
||||
Rule sol87 1987 only - Apr 7 12:02:20s -0:02:20 -
|
||||
Rule sol87 1987 only - Apr 8 12:02:05s -0:02:05 -
|
||||
Rule sol87 1987 only - Apr 9 12:01:45s -0:01:45 -
|
||||
Rule sol87 1987 only - Apr 10 12:01:30s -0:01:30 -
|
||||
Rule sol87 1987 only - Apr 11 12:01:15s -0:01:15 -
|
||||
Rule sol87 1987 only - Apr 12 12:00:55s -0:00:55 -
|
||||
Rule sol87 1987 only - Apr 13 12:00:40s -0:00:40 -
|
||||
Rule sol87 1987 only - Apr 14 12:00:25s -0:00:25 -
|
||||
Rule sol87 1987 only - Apr 15 12:00:10s -0:00:10 -
|
||||
Rule sol87 1987 only - Apr 16 11:59:55s 0:00:05 -
|
||||
Rule sol87 1987 only - Apr 17 11:59:45s 0:00:15 -
|
||||
Rule sol87 1987 only - Apr 18 11:59:30s 0:00:30 -
|
||||
Rule sol87 1987 only - Apr 19 11:59:15s 0:00:45 -
|
||||
Rule sol87 1987 only - Apr 20 11:59:05s 0:00:55 -
|
||||
Rule sol87 1987 only - Apr 21 11:58:50s 0:01:10 -
|
||||
Rule sol87 1987 only - Apr 22 11:58:40s 0:01:20 -
|
||||
Rule sol87 1987 only - Apr 23 11:58:25s 0:01:35 -
|
||||
Rule sol87 1987 only - Apr 24 11:58:15s 0:01:45 -
|
||||
Rule sol87 1987 only - Apr 25 11:58:05s 0:01:55 -
|
||||
Rule sol87 1987 only - Apr 26 11:57:55s 0:02:05 -
|
||||
Rule sol87 1987 only - Apr 27 11:57:45s 0:02:15 -
|
||||
Rule sol87 1987 only - Apr 28 11:57:35s 0:02:25 -
|
||||
Rule sol87 1987 only - Apr 29 11:57:25s 0:02:35 -
|
||||
Rule sol87 1987 only - Apr 30 11:57:15s 0:02:45 -
|
||||
Rule sol87 1987 only - May 1 11:57:10s 0:02:50 -
|
||||
Rule sol87 1987 only - May 2 11:57:00s 0:03:00 -
|
||||
Rule sol87 1987 only - May 3 11:56:55s 0:03:05 -
|
||||
Rule sol87 1987 only - May 4 11:56:50s 0:03:10 -
|
||||
Rule sol87 1987 only - May 5 11:56:45s 0:03:15 -
|
||||
Rule sol87 1987 only - May 6 11:56:40s 0:03:20 -
|
||||
Rule sol87 1987 only - May 7 11:56:35s 0:03:25 -
|
||||
Rule sol87 1987 only - May 8 11:56:30s 0:03:30 -
|
||||
Rule sol87 1987 only - May 9 11:56:25s 0:03:35 -
|
||||
Rule sol87 1987 only - May 10 11:56:25s 0:03:35 -
|
||||
Rule sol87 1987 only - May 11 11:56:20s 0:03:40 -
|
||||
Rule sol87 1987 only - May 12 11:56:20s 0:03:40 -
|
||||
Rule sol87 1987 only - May 13 11:56:20s 0:03:40 -
|
||||
Rule sol87 1987 only - May 14 11:56:20s 0:03:40 -
|
||||
Rule sol87 1987 only - May 15 11:56:20s 0:03:40 -
|
||||
Rule sol87 1987 only - May 16 11:56:20s 0:03:40 -
|
||||
Rule sol87 1987 only - May 17 11:56:20s 0:03:40 -
|
||||
Rule sol87 1987 only - May 18 11:56:20s 0:03:40 -
|
||||
Rule sol87 1987 only - May 19 11:56:25s 0:03:35 -
|
||||
Rule sol87 1987 only - May 20 11:56:25s 0:03:35 -
|
||||
Rule sol87 1987 only - May 21 11:56:30s 0:03:30 -
|
||||
Rule sol87 1987 only - May 22 11:56:35s 0:03:25 -
|
||||
Rule sol87 1987 only - May 23 11:56:40s 0:03:20 -
|
||||
Rule sol87 1987 only - May 24 11:56:45s 0:03:15 -
|
||||
Rule sol87 1987 only - May 25 11:56:50s 0:03:10 -
|
||||
Rule sol87 1987 only - May 26 11:56:55s 0:03:05 -
|
||||
Rule sol87 1987 only - May 27 11:57:00s 0:03:00 -
|
||||
Rule sol87 1987 only - May 28 11:57:10s 0:02:50 -
|
||||
Rule sol87 1987 only - May 29 11:57:15s 0:02:45 -
|
||||
Rule sol87 1987 only - May 30 11:57:25s 0:02:35 -
|
||||
Rule sol87 1987 only - May 31 11:57:30s 0:02:30 -
|
||||
Rule sol87 1987 only - Jun 1 11:57:40s 0:02:20 -
|
||||
Rule sol87 1987 only - Jun 2 11:57:50s 0:02:10 -
|
||||
Rule sol87 1987 only - Jun 3 11:58:00s 0:02:00 -
|
||||
Rule sol87 1987 only - Jun 4 11:58:10s 0:01:50 -
|
||||
Rule sol87 1987 only - Jun 5 11:58:20s 0:01:40 -
|
||||
Rule sol87 1987 only - Jun 6 11:58:30s 0:01:30 -
|
||||
Rule sol87 1987 only - Jun 7 11:58:40s 0:01:20 -
|
||||
Rule sol87 1987 only - Jun 8 11:58:50s 0:01:10 -
|
||||
Rule sol87 1987 only - Jun 9 11:59:05s 0:00:55 -
|
||||
Rule sol87 1987 only - Jun 10 11:59:15s 0:00:45 -
|
||||
Rule sol87 1987 only - Jun 11 11:59:30s 0:00:30 -
|
||||
Rule sol87 1987 only - Jun 12 11:59:40s 0:00:20 -
|
||||
Rule sol87 1987 only - Jun 13 11:59:50s 0:00:10 -
|
||||
Rule sol87 1987 only - Jun 14 12:00:05s -0:00:05 -
|
||||
Rule sol87 1987 only - Jun 15 12:00:15s -0:00:15 -
|
||||
Rule sol87 1987 only - Jun 16 12:00:30s -0:00:30 -
|
||||
Rule sol87 1987 only - Jun 17 12:00:45s -0:00:45 -
|
||||
Rule sol87 1987 only - Jun 18 12:00:55s -0:00:55 -
|
||||
Rule sol87 1987 only - Jun 19 12:01:10s -0:01:10 -
|
||||
Rule sol87 1987 only - Jun 20 12:01:20s -0:01:20 -
|
||||
Rule sol87 1987 only - Jun 21 12:01:35s -0:01:35 -
|
||||
Rule sol87 1987 only - Jun 22 12:01:50s -0:01:50 -
|
||||
Rule sol87 1987 only - Jun 23 12:02:00s -0:02:00 -
|
||||
Rule sol87 1987 only - Jun 24 12:02:15s -0:02:15 -
|
||||
Rule sol87 1987 only - Jun 25 12:02:25s -0:02:25 -
|
||||
Rule sol87 1987 only - Jun 26 12:02:40s -0:02:40 -
|
||||
Rule sol87 1987 only - Jun 27 12:02:50s -0:02:50 -
|
||||
Rule sol87 1987 only - Jun 28 12:03:05s -0:03:05 -
|
||||
Rule sol87 1987 only - Jun 29 12:03:15s -0:03:15 -
|
||||
Rule sol87 1987 only - Jun 30 12:03:30s -0:03:30 -
|
||||
Rule sol87 1987 only - Jul 1 12:03:40s -0:03:40 -
|
||||
Rule sol87 1987 only - Jul 2 12:03:50s -0:03:50 -
|
||||
Rule sol87 1987 only - Jul 3 12:04:05s -0:04:05 -
|
||||
Rule sol87 1987 only - Jul 4 12:04:15s -0:04:15 -
|
||||
Rule sol87 1987 only - Jul 5 12:04:25s -0:04:25 -
|
||||
Rule sol87 1987 only - Jul 6 12:04:35s -0:04:35 -
|
||||
Rule sol87 1987 only - Jul 7 12:04:45s -0:04:45 -
|
||||
Rule sol87 1987 only - Jul 8 12:04:55s -0:04:55 -
|
||||
Rule sol87 1987 only - Jul 9 12:05:05s -0:05:05 -
|
||||
Rule sol87 1987 only - Jul 10 12:05:15s -0:05:15 -
|
||||
Rule sol87 1987 only - Jul 11 12:05:20s -0:05:20 -
|
||||
Rule sol87 1987 only - Jul 12 12:05:30s -0:05:30 -
|
||||
Rule sol87 1987 only - Jul 13 12:05:40s -0:05:40 -
|
||||
Rule sol87 1987 only - Jul 14 12:05:45s -0:05:45 -
|
||||
Rule sol87 1987 only - Jul 15 12:05:50s -0:05:50 -
|
||||
Rule sol87 1987 only - Jul 16 12:06:00s -0:06:00 -
|
||||
Rule sol87 1987 only - Jul 17 12:06:05s -0:06:05 -
|
||||
Rule sol87 1987 only - Jul 18 12:06:10s -0:06:10 -
|
||||
Rule sol87 1987 only - Jul 19 12:06:15s -0:06:15 -
|
||||
Rule sol87 1987 only - Jul 20 12:06:15s -0:06:15 -
|
||||
Rule sol87 1987 only - Jul 21 12:06:20s -0:06:20 -
|
||||
Rule sol87 1987 only - Jul 22 12:06:25s -0:06:25 -
|
||||
Rule sol87 1987 only - Jul 23 12:06:25s -0:06:25 -
|
||||
Rule sol87 1987 only - Jul 24 12:06:25s -0:06:25 -
|
||||
Rule sol87 1987 only - Jul 25 12:06:30s -0:06:30 -
|
||||
Rule sol87 1987 only - Jul 26 12:06:30s -0:06:30 -
|
||||
Rule sol87 1987 only - Jul 27 12:06:30s -0:06:30 -
|
||||
Rule sol87 1987 only - Jul 28 12:06:30s -0:06:30 -
|
||||
Rule sol87 1987 only - Jul 29 12:06:25s -0:06:25 -
|
||||
Rule sol87 1987 only - Jul 30 12:06:25s -0:06:25 -
|
||||
Rule sol87 1987 only - Jul 31 12:06:25s -0:06:25 -
|
||||
Rule sol87 1987 only - Aug 1 12:06:20s -0:06:20 -
|
||||
Rule sol87 1987 only - Aug 2 12:06:15s -0:06:15 -
|
||||
Rule sol87 1987 only - Aug 3 12:06:10s -0:06:10 -
|
||||
Rule sol87 1987 only - Aug 4 12:06:05s -0:06:05 -
|
||||
Rule sol87 1987 only - Aug 5 12:06:00s -0:06:00 -
|
||||
Rule sol87 1987 only - Aug 6 12:05:55s -0:05:55 -
|
||||
Rule sol87 1987 only - Aug 7 12:05:50s -0:05:50 -
|
||||
Rule sol87 1987 only - Aug 8 12:05:40s -0:05:40 -
|
||||
Rule sol87 1987 only - Aug 9 12:05:35s -0:05:35 -
|
||||
Rule sol87 1987 only - Aug 10 12:05:25s -0:05:25 -
|
||||
Rule sol87 1987 only - Aug 11 12:05:15s -0:05:15 -
|
||||
Rule sol87 1987 only - Aug 12 12:05:05s -0:05:05 -
|
||||
Rule sol87 1987 only - Aug 13 12:04:55s -0:04:55 -
|
||||
Rule sol87 1987 only - Aug 14 12:04:45s -0:04:45 -
|
||||
Rule sol87 1987 only - Aug 15 12:04:35s -0:04:35 -
|
||||
Rule sol87 1987 only - Aug 16 12:04:25s -0:04:25 -
|
||||
Rule sol87 1987 only - Aug 17 12:04:10s -0:04:10 -
|
||||
Rule sol87 1987 only - Aug 18 12:04:00s -0:04:00 -
|
||||
Rule sol87 1987 only - Aug 19 12:03:45s -0:03:45 -
|
||||
Rule sol87 1987 only - Aug 20 12:03:30s -0:03:30 -
|
||||
Rule sol87 1987 only - Aug 21 12:03:15s -0:03:15 -
|
||||
Rule sol87 1987 only - Aug 22 12:03:00s -0:03:00 -
|
||||
Rule sol87 1987 only - Aug 23 12:02:45s -0:02:45 -
|
||||
Rule sol87 1987 only - Aug 24 12:02:30s -0:02:30 -
|
||||
Rule sol87 1987 only - Aug 25 12:02:15s -0:02:15 -
|
||||
Rule sol87 1987 only - Aug 26 12:02:00s -0:02:00 -
|
||||
Rule sol87 1987 only - Aug 27 12:01:40s -0:01:40 -
|
||||
Rule sol87 1987 only - Aug 28 12:01:25s -0:01:25 -
|
||||
Rule sol87 1987 only - Aug 29 12:01:05s -0:01:05 -
|
||||
Rule sol87 1987 only - Aug 30 12:00:50s -0:00:50 -
|
||||
Rule sol87 1987 only - Aug 31 12:00:30s -0:00:30 -
|
||||
Rule sol87 1987 only - Sep 1 12:00:10s -0:00:10 -
|
||||
Rule sol87 1987 only - Sep 2 11:59:50s 0:00:10 -
|
||||
Rule sol87 1987 only - Sep 3 11:59:35s 0:00:25 -
|
||||
Rule sol87 1987 only - Sep 4 11:59:15s 0:00:45 -
|
||||
Rule sol87 1987 only - Sep 5 11:58:55s 0:01:05 -
|
||||
Rule sol87 1987 only - Sep 6 11:58:35s 0:01:25 -
|
||||
Rule sol87 1987 only - Sep 7 11:58:15s 0:01:45 -
|
||||
Rule sol87 1987 only - Sep 8 11:57:55s 0:02:05 -
|
||||
Rule sol87 1987 only - Sep 9 11:57:30s 0:02:30 -
|
||||
Rule sol87 1987 only - Sep 10 11:57:10s 0:02:50 -
|
||||
Rule sol87 1987 only - Sep 11 11:56:50s 0:03:10 -
|
||||
Rule sol87 1987 only - Sep 12 11:56:30s 0:03:30 -
|
||||
Rule sol87 1987 only - Sep 13 11:56:10s 0:03:50 -
|
||||
Rule sol87 1987 only - Sep 14 11:55:45s 0:04:15 -
|
||||
Rule sol87 1987 only - Sep 15 11:55:25s 0:04:35 -
|
||||
Rule sol87 1987 only - Sep 16 11:55:05s 0:04:55 -
|
||||
Rule sol87 1987 only - Sep 17 11:54:45s 0:05:15 -
|
||||
Rule sol87 1987 only - Sep 18 11:54:20s 0:05:40 -
|
||||
Rule sol87 1987 only - Sep 19 11:54:00s 0:06:00 -
|
||||
Rule sol87 1987 only - Sep 20 11:53:40s 0:06:20 -
|
||||
Rule sol87 1987 only - Sep 21 11:53:15s 0:06:45 -
|
||||
Rule sol87 1987 only - Sep 22 11:52:55s 0:07:05 -
|
||||
Rule sol87 1987 only - Sep 23 11:52:35s 0:07:25 -
|
||||
Rule sol87 1987 only - Sep 24 11:52:15s 0:07:45 -
|
||||
Rule sol87 1987 only - Sep 25 11:51:55s 0:08:05 -
|
||||
Rule sol87 1987 only - Sep 26 11:51:35s 0:08:25 -
|
||||
Rule sol87 1987 only - Sep 27 11:51:10s 0:08:50 -
|
||||
Rule sol87 1987 only - Sep 28 11:50:50s 0:09:10 -
|
||||
Rule sol87 1987 only - Sep 29 11:50:30s 0:09:30 -
|
||||
Rule sol87 1987 only - Sep 30 11:50:10s 0:09:50 -
|
||||
Rule sol87 1987 only - Oct 1 11:49:50s 0:10:10 -
|
||||
Rule sol87 1987 only - Oct 2 11:49:35s 0:10:25 -
|
||||
Rule sol87 1987 only - Oct 3 11:49:15s 0:10:45 -
|
||||
Rule sol87 1987 only - Oct 4 11:48:55s 0:11:05 -
|
||||
Rule sol87 1987 only - Oct 5 11:48:35s 0:11:25 -
|
||||
Rule sol87 1987 only - Oct 6 11:48:20s 0:11:40 -
|
||||
Rule sol87 1987 only - Oct 7 11:48:00s 0:12:00 -
|
||||
Rule sol87 1987 only - Oct 8 11:47:45s 0:12:15 -
|
||||
Rule sol87 1987 only - Oct 9 11:47:25s 0:12:35 -
|
||||
Rule sol87 1987 only - Oct 10 11:47:10s 0:12:50 -
|
||||
Rule sol87 1987 only - Oct 11 11:46:55s 0:13:05 -
|
||||
Rule sol87 1987 only - Oct 12 11:46:40s 0:13:20 -
|
||||
Rule sol87 1987 only - Oct 13 11:46:25s 0:13:35 -
|
||||
Rule sol87 1987 only - Oct 14 11:46:10s 0:13:50 -
|
||||
Rule sol87 1987 only - Oct 15 11:45:55s 0:14:05 -
|
||||
Rule sol87 1987 only - Oct 16 11:45:45s 0:14:15 -
|
||||
Rule sol87 1987 only - Oct 17 11:45:30s 0:14:30 -
|
||||
Rule sol87 1987 only - Oct 18 11:45:20s 0:14:40 -
|
||||
Rule sol87 1987 only - Oct 19 11:45:05s 0:14:55 -
|
||||
Rule sol87 1987 only - Oct 20 11:44:55s 0:15:05 -
|
||||
Rule sol87 1987 only - Oct 21 11:44:45s 0:15:15 -
|
||||
Rule sol87 1987 only - Oct 22 11:44:35s 0:15:25 -
|
||||
Rule sol87 1987 only - Oct 23 11:44:25s 0:15:35 -
|
||||
Rule sol87 1987 only - Oct 24 11:44:20s 0:15:40 -
|
||||
Rule sol87 1987 only - Oct 25 11:44:10s 0:15:50 -
|
||||
Rule sol87 1987 only - Oct 26 11:44:05s 0:15:55 -
|
||||
Rule sol87 1987 only - Oct 27 11:43:55s 0:16:05 -
|
||||
Rule sol87 1987 only - Oct 28 11:43:50s 0:16:10 -
|
||||
Rule sol87 1987 only - Oct 29 11:43:45s 0:16:15 -
|
||||
Rule sol87 1987 only - Oct 30 11:43:45s 0:16:15 -
|
||||
Rule sol87 1987 only - Oct 31 11:43:40s 0:16:20 -
|
||||
Rule sol87 1987 only - Nov 1 11:43:40s 0:16:20 -
|
||||
Rule sol87 1987 only - Nov 2 11:43:35s 0:16:25 -
|
||||
Rule sol87 1987 only - Nov 3 11:43:35s 0:16:25 -
|
||||
Rule sol87 1987 only - Nov 4 11:43:35s 0:16:25 -
|
||||
Rule sol87 1987 only - Nov 5 11:43:35s 0:16:25 -
|
||||
Rule sol87 1987 only - Nov 6 11:43:40s 0:16:20 -
|
||||
Rule sol87 1987 only - Nov 7 11:43:40s 0:16:20 -
|
||||
Rule sol87 1987 only - Nov 8 11:43:45s 0:16:15 -
|
||||
Rule sol87 1987 only - Nov 9 11:43:50s 0:16:10 -
|
||||
Rule sol87 1987 only - Nov 10 11:43:55s 0:16:05 -
|
||||
Rule sol87 1987 only - Nov 11 11:44:00s 0:16:00 -
|
||||
Rule sol87 1987 only - Nov 12 11:44:05s 0:15:55 -
|
||||
Rule sol87 1987 only - Nov 13 11:44:15s 0:15:45 -
|
||||
Rule sol87 1987 only - Nov 14 11:44:20s 0:15:40 -
|
||||
Rule sol87 1987 only - Nov 15 11:44:30s 0:15:30 -
|
||||
Rule sol87 1987 only - Nov 16 11:44:40s 0:15:20 -
|
||||
Rule sol87 1987 only - Nov 17 11:44:50s 0:15:10 -
|
||||
Rule sol87 1987 only - Nov 18 11:45:05s 0:14:55 -
|
||||
Rule sol87 1987 only - Nov 19 11:45:15s 0:14:45 -
|
||||
Rule sol87 1987 only - Nov 20 11:45:30s 0:14:30 -
|
||||
Rule sol87 1987 only - Nov 21 11:45:45s 0:14:15 -
|
||||
Rule sol87 1987 only - Nov 22 11:46:00s 0:14:00 -
|
||||
Rule sol87 1987 only - Nov 23 11:46:15s 0:13:45 -
|
||||
Rule sol87 1987 only - Nov 24 11:46:30s 0:13:30 -
|
||||
Rule sol87 1987 only - Nov 25 11:46:50s 0:13:10 -
|
||||
Rule sol87 1987 only - Nov 26 11:47:10s 0:12:50 -
|
||||
Rule sol87 1987 only - Nov 27 11:47:25s 0:12:35 -
|
||||
Rule sol87 1987 only - Nov 28 11:47:45s 0:12:15 -
|
||||
Rule sol87 1987 only - Nov 29 11:48:05s 0:11:55 -
|
||||
Rule sol87 1987 only - Nov 30 11:48:30s 0:11:30 -
|
||||
Rule sol87 1987 only - Dec 1 11:48:50s 0:11:10 -
|
||||
Rule sol87 1987 only - Dec 2 11:49:10s 0:10:50 -
|
||||
Rule sol87 1987 only - Dec 3 11:49:35s 0:10:25 -
|
||||
Rule sol87 1987 only - Dec 4 11:50:00s 0:10:00 -
|
||||
Rule sol87 1987 only - Dec 5 11:50:25s 0:09:35 -
|
||||
Rule sol87 1987 only - Dec 6 11:50:50s 0:09:10 -
|
||||
Rule sol87 1987 only - Dec 7 11:51:15s 0:08:45 -
|
||||
Rule sol87 1987 only - Dec 8 11:51:40s 0:08:20 -
|
||||
Rule sol87 1987 only - Dec 9 11:52:05s 0:07:55 -
|
||||
Rule sol87 1987 only - Dec 10 11:52:30s 0:07:30 -
|
||||
Rule sol87 1987 only - Dec 11 11:53:00s 0:07:00 -
|
||||
Rule sol87 1987 only - Dec 12 11:53:25s 0:06:35 -
|
||||
Rule sol87 1987 only - Dec 13 11:53:55s 0:06:05 -
|
||||
Rule sol87 1987 only - Dec 14 11:54:25s 0:05:35 -
|
||||
Rule sol87 1987 only - Dec 15 11:54:50s 0:05:10 -
|
||||
Rule sol87 1987 only - Dec 16 11:55:20s 0:04:40 -
|
||||
Rule sol87 1987 only - Dec 17 11:55:50s 0:04:10 -
|
||||
Rule sol87 1987 only - Dec 18 11:56:20s 0:03:40 -
|
||||
Rule sol87 1987 only - Dec 19 11:56:50s 0:03:10 -
|
||||
Rule sol87 1987 only - Dec 20 11:57:20s 0:02:40 -
|
||||
Rule sol87 1987 only - Dec 21 11:57:50s 0:02:10 -
|
||||
Rule sol87 1987 only - Dec 22 11:58:20s 0:01:40 -
|
||||
Rule sol87 1987 only - Dec 23 11:58:50s 0:01:10 -
|
||||
Rule sol87 1987 only - Dec 24 11:59:20s 0:00:40 -
|
||||
Rule sol87 1987 only - Dec 25 11:59:50s 0:00:10 -
|
||||
Rule sol87 1987 only - Dec 26 12:00:20s -0:00:20 -
|
||||
Rule sol87 1987 only - Dec 27 12:00:45s -0:00:45 -
|
||||
Rule sol87 1987 only - Dec 28 12:01:15s -0:01:15 -
|
||||
Rule sol87 1987 only - Dec 29 12:01:45s -0:01:45 -
|
||||
Rule sol87 1987 only - Dec 30 12:02:15s -0:02:15 -
|
||||
Rule sol87 1987 only - Dec 31 12:02:45s -0:02:45 -
|
||||
|
||||
# Riyadh is at about 46 degrees 46 minutes East: 3 hrs, 7 mins, 4 secs
|
||||
# Before and after 1987, we'll operate on local mean solar time.
|
||||
|
||||
# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
|
||||
Zone Mideast/Riyadh 3:07:04 - ?? 1987
|
||||
3:07:04 sol87 ?? 1988
|
||||
3:07:04 - ??
|
||||
35
src/share/zoneinfo/systemv
Normal file
35
src/share/zoneinfo/systemv
Normal file
@@ -0,0 +1,35 @@
|
||||
# @(#)systemv 3.1
|
||||
|
||||
#
|
||||
# Old rules, should the need arise.
|
||||
# No attempt is made to handle Newfoundland, since it cannot be expressed
|
||||
# using the System V "TZ" scheme (half-hour offset), or anything outside
|
||||
# North America (no support for non-standard DST start/end dates), nor
|
||||
# the change in the DST rules in the US in 1987 (can't split between
|
||||
# Canada, with no changes, and the US)
|
||||
#
|
||||
|
||||
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
Rule SystemV min 1973 - Apr lastSun 2:00 1:00 D
|
||||
Rule SystemV min 1973 - Oct lastSun 2:00 0 S
|
||||
Rule SystemV 1974 only - Jan 6 2:00 1:00 D
|
||||
Rule SystemV 1974 only - Nov lastSun 2:00 0 S
|
||||
Rule SystemV 1975 only - Feb 23 2:00 1:00 D
|
||||
Rule SystemV 1975 only - Oct lastSun 2:00 0 S
|
||||
Rule SystemV 1976 max - Apr lastSun 2:00 1:00 D
|
||||
Rule SystemV 1976 max - Oct lastSun 2:00 0 S
|
||||
|
||||
# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
|
||||
Zone SystemV/AST4ADT -4:00 SystemV A%sT
|
||||
Zone SystemV/EST5EDT -5:00 SystemV E%sT
|
||||
Zone SystemV/CST6CDT -6:00 SystemV C%sT
|
||||
Zone SystemV/MST7MDT -7:00 SystemV M%sT
|
||||
Zone SystemV/PST8PDT -8:00 SystemV P%sT
|
||||
Zone SystemV/YST9YDT -9:00 SystemV Y%sT
|
||||
Zone SystemV/AST4 -4:00 - AST
|
||||
Zone SystemV/EST5 -5:00 - EST
|
||||
Zone SystemV/CST6 -6:00 - CST
|
||||
Zone SystemV/MST7 -7:00 - MST
|
||||
Zone SystemV/PST8 -8:00 - PST
|
||||
Zone SystemV/YST9 -9:00 - YST
|
||||
Zone SystemV/HST10 -10:00 - HST
|
||||
42
src/share/zoneinfo/zdump.8
Normal file
42
src/share/zoneinfo/zdump.8
Normal file
@@ -0,0 +1,42 @@
|
||||
.TH ZDUMP 8
|
||||
.SH NAME
|
||||
zdump \- time zone dumper
|
||||
.SH SYNOPSIS
|
||||
.B zdump
|
||||
[
|
||||
.B \-v
|
||||
] [
|
||||
.B \-c
|
||||
cutoffyear ] [ zonename ... ]
|
||||
.SH DESCRIPTION
|
||||
.I Zdump
|
||||
prints the current time in each
|
||||
.I zonename
|
||||
named on the command line.
|
||||
.PP
|
||||
These options are available:
|
||||
.TP
|
||||
.B \-v
|
||||
For each
|
||||
.I zonename
|
||||
on the command line,
|
||||
print the current time,
|
||||
the time at the lowest possible time value,
|
||||
the time one day after the lowest possible time value,
|
||||
the times both one second before and exactly at
|
||||
each time at which the rules for computing local time change,
|
||||
the time at the highest possible time value,
|
||||
and the time at one day less than the highest possible time value.
|
||||
Each line ends with
|
||||
.B isdst=1
|
||||
if the given time is Daylight Saving Time or
|
||||
.B isdst=0
|
||||
otherwise.
|
||||
.TP
|
||||
.BI "\-c " cutoffyear
|
||||
Cut off the verbose output near the start of the given year.
|
||||
.SH FILES
|
||||
/usr/share/zoneinfo standard zone information directory
|
||||
.SH "SEE ALSO"
|
||||
newctime(3), tzfile(5), zic(8)
|
||||
.. @(#)zdump.8 3.2
|
||||
209
src/share/zoneinfo/zdump.c
Normal file
209
src/share/zoneinfo/zdump.c
Normal file
@@ -0,0 +1,209 @@
|
||||
/*
|
||||
* @(#)zdump.c 1.1 zdump.c 3/4/87
|
||||
*/
|
||||
|
||||
#include "stdio.h"
|
||||
|
||||
#include "sys/types.h"
|
||||
#include "tzfile.h"
|
||||
#include "time.h"
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
extern char * asctime();
|
||||
extern char ** environ;
|
||||
extern struct tm * gmtime();
|
||||
extern char * imalloc();
|
||||
extern char * optarg;
|
||||
extern int optind;
|
||||
extern char * sprintf();
|
||||
extern long time();
|
||||
extern char * tzname[2];
|
||||
extern void tzset();
|
||||
|
||||
/*
|
||||
** For the benefit of cyntax...
|
||||
*/
|
||||
|
||||
static long tzdecode();
|
||||
static readerr();
|
||||
static show();
|
||||
|
||||
static int longest;
|
||||
|
||||
static long
|
||||
tzdecode(codep)
|
||||
char * codep;
|
||||
{
|
||||
register int i;
|
||||
register long result;
|
||||
|
||||
result = 0;
|
||||
for (i = 0; i < 4; ++i)
|
||||
result = (result << 8) | (codep[i] & 0xff);
|
||||
return result;
|
||||
}
|
||||
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char * argv[];
|
||||
{
|
||||
register FILE * fp;
|
||||
register int i, j, c;
|
||||
register int vflag;
|
||||
register char * cutoff;
|
||||
register int cutyear;
|
||||
register long cuttime;
|
||||
time_t now;
|
||||
time_t t;
|
||||
long timecnt;
|
||||
char buf[BUFSIZ];
|
||||
|
||||
vflag = 0;
|
||||
cutoff = NULL;
|
||||
while ((c = getopt(argc, argv, "c:v")) == 'c' || c == 'v')
|
||||
if (c == 'v')
|
||||
vflag = 1;
|
||||
else cutoff = optarg;
|
||||
if (c != EOF || optind == argc - 1 && strcmp(argv[optind], "=") == 0) {
|
||||
(void) fprintf(stderr, "%s: usage is %s [ -v ] zonename ...\n",
|
||||
argv[0], argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
if (cutoff != NULL)
|
||||
cutyear = atoi(cutoff);
|
||||
/*
|
||||
** VERY approximate.
|
||||
*/
|
||||
cuttime = (long) (cutyear - EPOCH_YEAR) *
|
||||
SECS_PER_HOUR * HOURS_PER_DAY * DAYS_PER_NYEAR;
|
||||
(void) time(&now);
|
||||
longest = 0;
|
||||
for (i = optind; i < argc; ++i)
|
||||
if (strlen(argv[i]) > longest)
|
||||
longest = strlen(argv[i]);
|
||||
for (i = optind; i < argc; ++i) {
|
||||
register char ** saveenv;
|
||||
char * tzequals;
|
||||
char * fakeenv[2];
|
||||
|
||||
tzequals = imalloc(strlen(argv[i]) + 4);
|
||||
if (tzequals == NULL) {
|
||||
(void) fprintf(stderr, "%s: can't allocate memory\n",
|
||||
argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
(void) sprintf(tzequals, "TZ=%s", argv[i]);
|
||||
fakeenv[0] = tzequals;
|
||||
fakeenv[1] = NULL;
|
||||
saveenv = environ;
|
||||
environ = fakeenv;
|
||||
(void) tzset();
|
||||
environ = saveenv;
|
||||
show(argv[i], now, FALSE);
|
||||
if (!vflag)
|
||||
continue;
|
||||
if (argv[i][0] == '/')
|
||||
fp = fopen(argv[i], "r");
|
||||
else {
|
||||
j = strlen(TZDIR) + 1 + strlen(argv[i]) + 1;
|
||||
if (j > sizeof buf) {
|
||||
(void) fprintf(stderr,
|
||||
"%s: timezone name %s/%s is too long\n",
|
||||
argv[0], TZDIR, argv[i]);
|
||||
exit(1);
|
||||
}
|
||||
(void) sprintf(buf, "%s/%s", TZDIR, argv[i]);
|
||||
fp = fopen(buf, "r");
|
||||
}
|
||||
if (fp == NULL) {
|
||||
(void) fprintf(stderr, "%s: Can't open ", argv[0]);
|
||||
perror(argv[i]);
|
||||
exit(1);
|
||||
}
|
||||
{
|
||||
char code[4];
|
||||
|
||||
(void) fseek(fp, (long) sizeof ((struct tzhead *) 0)->tzh_reserved, 0);
|
||||
if (fread((char *) code, sizeof code, 1, fp) != 1)
|
||||
readerr(fp, argv[0], argv[i]);
|
||||
timecnt = tzdecode(code);
|
||||
(void) fseek(fp, (long) (2 * sizeof code), 1);
|
||||
}
|
||||
t = 0x80000000;
|
||||
if (t > 0) /* time_t is unsigned */
|
||||
t = 0;
|
||||
show(argv[i], t, TRUE);
|
||||
t += SECS_PER_HOUR * HOURS_PER_DAY;
|
||||
show(argv[i], t, TRUE);
|
||||
while (timecnt-- > 0) {
|
||||
char code[4];
|
||||
|
||||
if (fread((char *) code, sizeof code, 1, fp) != 1)
|
||||
readerr(fp, argv[0], argv[i]);
|
||||
t = tzdecode(code);
|
||||
if (cutoff != NULL && t > cuttime)
|
||||
break;
|
||||
show(argv[i], t - 1, TRUE);
|
||||
show(argv[i], t, TRUE);
|
||||
}
|
||||
if (fclose(fp)) {
|
||||
(void) fprintf(stderr, "%s: Error closing ", argv[0]);
|
||||
perror(argv[i]);
|
||||
exit(1);
|
||||
}
|
||||
t = 0xffffffff;
|
||||
if (t < 0) /* time_t is signed */
|
||||
t = 0x7fffffff ;
|
||||
t -= SECS_PER_HOUR * HOURS_PER_DAY;
|
||||
show(argv[i], t, TRUE);
|
||||
t += SECS_PER_HOUR * HOURS_PER_DAY;
|
||||
show(argv[i], t, TRUE);
|
||||
free(tzequals);
|
||||
}
|
||||
if (fflush(stdout) || ferror(stdout)) {
|
||||
(void) fprintf(stderr, "%s: Error writing standard output ",
|
||||
argv[0]);
|
||||
perror("standard output");
|
||||
exit(1);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static
|
||||
show(zone, t, v)
|
||||
char * zone;
|
||||
time_t t;
|
||||
{
|
||||
struct tm * tmp;
|
||||
extern struct tm * localtime();
|
||||
|
||||
(void) printf("%-*s ", longest, zone);
|
||||
if (v)
|
||||
(void) printf("%.24s GMT = ", asctime(gmtime(&t)));
|
||||
tmp = localtime(&t);
|
||||
(void) printf("%.24s", asctime(tmp));
|
||||
if (*tzname[tmp->tm_isdst] != '\0')
|
||||
(void) printf(" %s", tzname[tmp->tm_isdst]);
|
||||
if (v) {
|
||||
(void) printf(" isdst=%d", tmp->tm_isdst);
|
||||
(void) printf(" gmtoff=%ld", tmp->tm_gmtoff);
|
||||
}
|
||||
(void) printf("\n");
|
||||
}
|
||||
|
||||
static
|
||||
readerr(fp, progname, filename)
|
||||
FILE * fp;
|
||||
char * progname;
|
||||
char * filename;
|
||||
{
|
||||
(void) fprintf(stderr, "%s: Error reading ", progname);
|
||||
if (ferror(fp))
|
||||
perror(filename);
|
||||
else (void) fprintf(stderr, "%s: Premature EOF\n", filename);
|
||||
exit(1);
|
||||
}
|
||||
294
src/share/zoneinfo/zic.8
Normal file
294
src/share/zoneinfo/zic.8
Normal file
@@ -0,0 +1,294 @@
|
||||
.TH ZIC 8
|
||||
.SH NAME
|
||||
zic \- time zone compiler
|
||||
.SH SYNOPSIS
|
||||
.B zic
|
||||
[
|
||||
.B \-v
|
||||
] [
|
||||
.B \-d
|
||||
.I directory
|
||||
] [
|
||||
.B \-l
|
||||
.I localtime
|
||||
] [
|
||||
.I filename
|
||||
\&... ]
|
||||
.SH DESCRIPTION
|
||||
.I Zic
|
||||
reads text from the file(s) named on the command line
|
||||
and creates the time conversion information files specified in this input.
|
||||
If a
|
||||
.I filename
|
||||
is
|
||||
.BR \- ,
|
||||
the standard input is read.
|
||||
.PP
|
||||
These options are available:
|
||||
.TP
|
||||
.BI "\-d " directory
|
||||
Create time conversion information files in the named directory rather than
|
||||
in the standard directory named below.
|
||||
.TP
|
||||
.BI "\-l " timezone
|
||||
Use the given time zone as local time.
|
||||
.I Zic
|
||||
will act as if the file contained a link line of the form
|
||||
.sp
|
||||
.ti +.5i
|
||||
Link \fItimezone\fP localtime
|
||||
.TP
|
||||
.B \-v
|
||||
Complain if a year that appears in a data file is outside the range
|
||||
of years representable by
|
||||
.IR time (2)
|
||||
values.
|
||||
.sp
|
||||
Input lines are made up of fields.
|
||||
Fields are separated from one another by any number of white space characters.
|
||||
Leading and trailing white space on input lines is ignored.
|
||||
An unquoted sharp character (#) in the input introduces a comment which extends
|
||||
to the end of the line the sharp character appears on.
|
||||
White space characters and sharp characters may be enclosed in double quotes
|
||||
(") if they're to be used as part of a field.
|
||||
Any line that is blank (after comment stripping) is ignored.
|
||||
Non-blank lines are expected to be of one of three types:
|
||||
rule lines, zone lines, and link lines.
|
||||
.PP
|
||||
A rule line has the form
|
||||
.nf
|
||||
.B
|
||||
.ti +.5i
|
||||
.ta \w'Rule\0\0'u +\w'NAME\0\0'u +\w'FROM\0\0'u +\w'1973\0\0'u +\w'TYPE\0\0'u +\w'Apr\0\0'u +\w'lastSun\0\0'u +\w'2:00\0\0'u +\w'SAVE\0\0'u
|
||||
.sp
|
||||
Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
|
||||
.sp
|
||||
For example:
|
||||
.ti +.5i
|
||||
.sp
|
||||
Rule USA 1969 1973 \- Apr lastSun 2:00 1:00 D
|
||||
.sp
|
||||
.fi
|
||||
The fields that make up a rule line are:
|
||||
.TP "\w'LETTER/S'u"
|
||||
.B NAME
|
||||
Gives the (arbitrary) name of the set of rules this rule is part of.
|
||||
.TP
|
||||
.B FROM
|
||||
Gives the first year in which the rule applies.
|
||||
The word
|
||||
.B minimum
|
||||
(or an abbreviation) means the minimum year with a representable time value.
|
||||
The word
|
||||
.B maximum
|
||||
(or an abbreviation) means the maximum year with a representable time value.
|
||||
.TP
|
||||
.B TO
|
||||
Gives the final year in which the rule applies.
|
||||
In addition to
|
||||
.B minimum
|
||||
and
|
||||
.B maximum
|
||||
(as above),
|
||||
the word
|
||||
.B only
|
||||
(or an abbreviation)
|
||||
may be used to repeat the value of the
|
||||
.B FROM
|
||||
field.
|
||||
.TP
|
||||
.B TYPE
|
||||
Gives the type of year in which the year applies.
|
||||
If
|
||||
.B TYPE
|
||||
is
|
||||
.B \-
|
||||
then the rule applies in all years between
|
||||
.B FROM
|
||||
and
|
||||
.B TO
|
||||
inclusive;
|
||||
if
|
||||
.B TYPE
|
||||
is
|
||||
.BR uspres ,
|
||||
the rule applies in U.S. Presidential election years;
|
||||
if
|
||||
.B TYPE
|
||||
is
|
||||
.BR nonpres ,
|
||||
the rule applies in years other than U.S. Presidential election years.
|
||||
If
|
||||
.B TYPE
|
||||
is something else, then
|
||||
.I zic
|
||||
executes the command
|
||||
.ti +.5i
|
||||
\fByearistype\fP \fIyear\fP \fItype\fP
|
||||
.br
|
||||
to check the type of a year:
|
||||
an exit status of zero is taken to mean that the year is of the given type;
|
||||
an exit status of one is taken to mean that the year is not of the given type.
|
||||
.TP
|
||||
.B IN
|
||||
Names the month in which the rule takes effect.
|
||||
Month names may be abbreviated.
|
||||
.TP
|
||||
.B ON
|
||||
Gives the day on which the rule takes effect.
|
||||
Recognized forms include:
|
||||
.nf
|
||||
.in +.5i
|
||||
.sp
|
||||
.ta \w'Sun<=25\0\0'u
|
||||
5 the fifth of the month
|
||||
lastSun the last Sunday in the month
|
||||
lastMon the last Monday in the month
|
||||
Sun>=8 first Sunday on or after the eighth
|
||||
Sun<=25 last Sunday on or before the 25th
|
||||
.fi
|
||||
.in -.5i
|
||||
.sp
|
||||
Names of days of the week may be abbreviated or spelled out in full.
|
||||
Note that there must be no spaces within the
|
||||
.B ON
|
||||
field.
|
||||
.TP
|
||||
.B AT
|
||||
Gives the time of day at which the rule takes affect.
|
||||
Recognized forms include:
|
||||
.nf
|
||||
.in +.5i
|
||||
.sp
|
||||
.ta \w'1:28:13\0\0'u
|
||||
2 time in hours
|
||||
2:00 time in hours and minutes
|
||||
15:00 24-hour format time (for times after noon)
|
||||
1:28:14 time in hours, minutes, and seconds
|
||||
.fi
|
||||
.in -.5i
|
||||
.sp
|
||||
Any of these forms may be followed by the letter
|
||||
.B w
|
||||
if the given time is local ``wall clock'' time or
|
||||
.B s
|
||||
if the given time is local ``standard'' time; in the absence of
|
||||
.B w
|
||||
or
|
||||
.BR s ,
|
||||
wall clock time is assumed.
|
||||
.TP
|
||||
.B SAVE
|
||||
Gives the amount of time to be added to local standard time when the rule is in
|
||||
effect.
|
||||
This field has the same format as the
|
||||
.B AT
|
||||
field
|
||||
(although, of course, the
|
||||
.B w
|
||||
and
|
||||
.B s
|
||||
suffixes are not used).
|
||||
.TP
|
||||
.B LETTER/S
|
||||
Gives the ``variable part'' (for example, the ``S'' or ``D'' in ``EST''
|
||||
or ``EDT'') of time zone abbreviations to be used when this rule is in effect.
|
||||
If this field is
|
||||
.BR \- ,
|
||||
the variable part is null.
|
||||
.PP
|
||||
A zone line has the form
|
||||
.sp
|
||||
.nf
|
||||
.ti +.5i
|
||||
.ta \w'Zone\0\0'u +\w'Australia/South\-west\0\0'u +\w'GMTOFF\0\0'u +\w'RULES/SAVE\0\0'u +\w'FORMAT\0\0'u
|
||||
Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
|
||||
.sp
|
||||
For example:
|
||||
.sp
|
||||
.ti +.5i
|
||||
Zone Australia/South\-west 9:30 Aus CST 1987 Mar 15 2:00
|
||||
.sp
|
||||
.fi
|
||||
The fields that make up a zone line are:
|
||||
.TP "\w'GMTOFF'u"
|
||||
.B NAME
|
||||
The name of the time zone.
|
||||
This is the name used in creating the time conversion information file for the
|
||||
zone.
|
||||
.TP
|
||||
.B GMTOFF
|
||||
The amount of time to add to GMT to get standard time in this zone.
|
||||
This field has the same format as the
|
||||
.B AT
|
||||
and
|
||||
.B SAVE
|
||||
fields of rule lines;
|
||||
begin the field with a minus sign if time must be subtracted from GMT.
|
||||
.TP
|
||||
.B RULES/SAVE
|
||||
The name of the rule(s) that apply in the time zone or,
|
||||
alternately, an amount of time to add to local standard time.
|
||||
If this field is
|
||||
.B \-
|
||||
then standard time always applies in the time zone.
|
||||
.TP
|
||||
.B FORMAT
|
||||
The format for time zone abbreviations in this time zone.
|
||||
The pair of characters
|
||||
.B %s
|
||||
is used to show where the ``variable part'' of the time zone abbreviation goes.
|
||||
.B UNTIL
|
||||
The time at which the GMT offset or the rule(s) change for a location.
|
||||
It is specified as a year, a month, a day, and a time of day.
|
||||
If this is specified,
|
||||
the time zone information is generated from the given GMT offset
|
||||
and rule change until the time specified.
|
||||
.IP
|
||||
The next line must be a
|
||||
``continuation'' line; this has the same form as a zone line except that the
|
||||
string ``Zone'' and the name are omitted, as the continuation line will
|
||||
place information starting at the time specified as the
|
||||
.B UNTIL
|
||||
field in the previous line in the file used by the previous line.
|
||||
Continuation lines may contain an
|
||||
.B UNTIL
|
||||
field, just as zone lines do, indicating that the next line is a further
|
||||
continuation.
|
||||
.PP
|
||||
A link line has the form
|
||||
.sp
|
||||
.nf
|
||||
.ti +.5i
|
||||
.if t .ta \w'Link\0\0'u +\w'LINK-FROM\0\0'u
|
||||
.if n .ta \w'Link\0\0'u +\w'US/Eastern\0\0'u
|
||||
Link LINK-FROM LINK-TO
|
||||
.sp
|
||||
For example:
|
||||
.sp
|
||||
.ti +.5i
|
||||
Link US/Eastern EST5EDT
|
||||
.sp
|
||||
.fi
|
||||
The
|
||||
.B LINK-FROM
|
||||
field should appear as the
|
||||
.B NAME
|
||||
field in some zone line;
|
||||
the
|
||||
.B LINK-TO
|
||||
field is used as an alternate name for that zone.
|
||||
.PP
|
||||
Except for continuation lines,
|
||||
lines may appear in any order in the input.
|
||||
.SH NOTE
|
||||
For areas with more than two types of local time,
|
||||
you may need to use local standard time in the
|
||||
.B AT
|
||||
field of the earliest transition time's rule to ensure that
|
||||
the earliest transition time recorded in the compiled file is correct.
|
||||
.SH FILES
|
||||
/usr/share/zoneinfo standard directory used for created files
|
||||
.SH "SEE ALSO"
|
||||
newctime(3), tzfile(5), zdump(8)
|
||||
.. @(#)zic.8 3.2
|
||||
1543
src/share/zoneinfo/zic.c
Normal file
1543
src/share/zoneinfo/zic.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user