From c3f352d4ad515968c54d216a0e53252eff8ab3ef Mon Sep 17 00:00:00 2001 From: peter Date: Sat, 30 Dec 1995 19:02:48 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r13122, which included commits to RCS files with non-trunk default branches. --- share/zoneinfo/datfiles/africa | 43 - share/zoneinfo/datfiles/antarctica | 4 - share/zoneinfo/datfiles/australasia | 110 -- share/zoneinfo/datfiles/etcetera | 55 - share/zoneinfo/datfiles/factory | 8 - share/zoneinfo/datfiles/leapseconds | 31 - share/zoneinfo/datfiles/northamerica | 321 ------ share/zoneinfo/datfiles/pacificnew | 21 - share/zoneinfo/datfiles/solar87 | 386 ------- share/zoneinfo/datfiles/solar88 | 386 ------- share/zoneinfo/datfiles/solar89 | 391 ------- share/zoneinfo/datfiles/southamerica | 103 -- share/zoneinfo/datfiles/systemv | 35 - share/zoneinfo/datfiles/usno1988 | 111 -- share/zoneinfo/datfiles/usno1989 | 452 -------- share/zoneinfo/ialloc.c | 140 --- share/zoneinfo/scheck.c | 99 -- share/zoneinfo/tzfile.5 | 162 --- share/zoneinfo/zic.8 | 424 -------- share/zoneinfo/zic.c | 1892 ---------------------------------- 20 files changed, 5174 deletions(-) delete mode 100644 share/zoneinfo/datfiles/africa delete mode 100644 share/zoneinfo/datfiles/antarctica delete mode 100644 share/zoneinfo/datfiles/australasia delete mode 100644 share/zoneinfo/datfiles/etcetera delete mode 100644 share/zoneinfo/datfiles/factory delete mode 100644 share/zoneinfo/datfiles/leapseconds delete mode 100644 share/zoneinfo/datfiles/northamerica delete mode 100644 share/zoneinfo/datfiles/pacificnew delete mode 100644 share/zoneinfo/datfiles/solar87 delete mode 100644 share/zoneinfo/datfiles/solar88 delete mode 100644 share/zoneinfo/datfiles/solar89 delete mode 100644 share/zoneinfo/datfiles/southamerica delete mode 100644 share/zoneinfo/datfiles/systemv delete mode 100644 share/zoneinfo/datfiles/usno1988 delete mode 100644 share/zoneinfo/datfiles/usno1989 delete mode 100644 share/zoneinfo/ialloc.c delete mode 100644 share/zoneinfo/scheck.c delete mode 100644 share/zoneinfo/tzfile.5 delete mode 100644 share/zoneinfo/zic.8 delete mode 100644 share/zoneinfo/zic.c (limited to 'share/zoneinfo') diff --git a/share/zoneinfo/datfiles/africa b/share/zoneinfo/datfiles/africa deleted file mode 100644 index bed0252..0000000 --- a/share/zoneinfo/datfiles/africa +++ /dev/null @@ -1,43 +0,0 @@ -# @(#)africa 4.3 - -############################################################################### - -# Egypt - -# From Bob Devine (January 28, 1988): -# Egypt: DST from first day of May to first of October (ending may -# also be on Sept 30th not 31st -- you might want to ask one of the -# soc.* groups, you might hit someone who could ask an embassy). -# DST since 1960 except for 1981-82. - -# From U. S. Naval Observatory (January 19, 1989): -# EGYPT 2 H AHEAD OF UTC -# EGYPT 3 H AHEAD OF UTC MAY 17 - SEP 30 (AFTER -# EGYPT RAMADAN) - -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Egypt 1960 max - May 1 2:00 1:00 " DST" -Rule Egypt 1960 max - Oct 1 2:00 0 - - -# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] -Zone Egypt 2:00 Egypt EET%s 1981 - 2:00 - EET 1983 - 2:00 Egypt EET%s - -############################################################################### - -# Libya - -# From Bob Devine (January 28 1988): -# Libya: Since 1982 April 1st to September 30th (?) - -# From U. S. Naval Observatory (January 19, 1989): -# LIBYAN ARAB 1 H AHEAD OF UTC JAMAHIRIYA/LIBYA -# LIBYAN ARAB 2 H AHEAD OF UTC APR 1 - SEP 30 JAMAHIRIYA/LIBYA - -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Libya 1982 max - Apr 1 2:00 1:00 " DST" -Rule Libya 1982 max - Sep 30 2:00 0 - - -# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] -Zone Libya 2:00 Libya EET%s diff --git a/share/zoneinfo/datfiles/antarctica b/share/zoneinfo/datfiles/antarctica deleted file mode 100644 index 276dda1..0000000 --- a/share/zoneinfo/datfiles/antarctica +++ /dev/null @@ -1,4 +0,0 @@ -# @(#)antarctica 4.1 - -# From Arthur David Olson (February 13, 1988): -# No data available. diff --git a/share/zoneinfo/datfiles/australasia b/share/zoneinfo/datfiles/australasia deleted file mode 100644 index 8aad7e0..0000000 --- a/share/zoneinfo/datfiles/australasia +++ /dev/null @@ -1,110 +0,0 @@ -# @(#)australasia 4.4 - -# Incorporates updates for Australia from Robert Elz' australia 1.1 -# and further updates from the Australian consulate. - -############################################################################### - -# Australia - -# 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 jumped to a later ending date for DST in 1986 rather than 1987. - -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 - -# New South Wales and subjurisdictions have their own ideas of a fun time. -# Based on law library research by John Mackin (john@basser.cs.su.oz), -# who notes: -# In Australia, time is not legislated federally, but rather by the -# individual states. Thus, while such terms as ``Eastern Standard Time'' -# [I mean, of course, Australian EST, not any other kind] are in common -# use, _they have NO REAL MEANING_, as they are not defined in the -# legislation. This is very important to understand. -# I have researched New South Wales time only; . . .I hope that perhaps a -# resident of each state could be found to do it for their own state. -# (And I can guarantee that Victoria and NSW are different, so the link -# between them in the current australasia file must be broken.) - -# From Robert Elz (May 5, 1989): -# -# From next year (1990) NSW will revert to ending DST on the 1st -# Sunday in March (rather than the third, which it appears will -# continue to be what everyone else uses). - -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule NSW 1971 1985 - Oct lastSun 2:00 1:00 - -Rule NSW 1972 only - Feb lastSun 3:00 0 - -Rule NSW 1973 1981 - Mar Sun>=1 3:00 0 - -Rule NSW 1982 only - Apr 4 3:00 0 - -Rule NSW 1983 1985 - Mar Sun>=1 3:00 0 - -Rule NSW 1986 only - Mar 16 3:00 0 - -Rule NSW 1986 only - Oct 19 2:00 1:00 - -Rule NSW 1987 only - Mar 15 3:00 0 - -Rule NSW 1987 max - Oct lastSun 2:00 1:00 - -Rule NSW 1988 1989 - Mar Sun<=21 3:00 0 - -Rule NSW 1990 max - Mar Sun>=1 3:00 0 - - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Australia/NSW 10:00 NSW EST -# `Broken Hill' means the County of Yancowinna. [john@basser.cs.su.oz.au,1/4/89] -Zone Australia/Yancowinna 9:30 NSW ??? -Zone Australia/LHI 10:30 NSW ??? - -# A footnote here: -# -# . . . -# Date: Thu, j19 Feb 87 12:02:17 EST -# From: Bradley White -# . . . -# 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 [S]un 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. - -############################################################################### - -# New Zealand - -# New Zealand, from Elz' asia 1.1 -# Elz says "no guarantees" -# -# the 1989/90 year was a trial of an extended "daylight saving" period. -# This trial was deemed successful and the extended period adopted for -# subsequent years (with the addition of a further week at the start). -# source -- phone call to Ministry of Internal Affairs Head Office. -# Mark Davies , 3 Oct 1990. -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule NZ 1974 1988 - Oct lastSun 2:00 1:00 D -Rule NZ 1989 only - Oct 8 2:00 1:00 D -Rule NZ 1990 max - Oct Sun>=1 2:00 1:00 D -Rule NZ 1975 1989 - Mar Sun>=1 3:00 0 S -Rule NZ 1990 max - Mar Sun>=15 3:00 0 S - -# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] -Zone NZ 12:00 NZ NZ%sT # New Zealand diff --git a/share/zoneinfo/datfiles/etcetera b/share/zoneinfo/datfiles/etcetera deleted file mode 100644 index dbda4db..0000000 --- a/share/zoneinfo/datfiles/etcetera +++ /dev/null @@ -1,55 +0,0 @@ -# @(#)etcetera 4.4 - -# All of these are set up just so people can "zic -l" to 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 0 - GMT - -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 -Link GMT Zulu -Link GMT GMT-0 -Link GMT GMT+0 -Link GMT GMT0 -Link GMT+1 GMT1 -Link GMT+2 GMT2 -Link GMT+3 GMT3 -Link GMT+4 GMT4 -Link GMT+5 GMT5 -Link GMT+6 GMT6 -Link GMT+7 GMT7 -Link GMT+8 GMT8 -Link GMT+9 GMT9 -Link GMT+10 GMT10 -Link GMT+11 GMT11 -Link GMT+12 GMT12 -Link GMT+13 GMT13 diff --git a/share/zoneinfo/datfiles/factory b/share/zoneinfo/datfiles/factory deleted file mode 100644 index c1c38c1..0000000 --- a/share/zoneinfo/datfiles/factory +++ /dev/null @@ -1,8 +0,0 @@ -# @(#)factory 1.1 - -# For companies who don't want to put time zone specification in -# their installation procedures. When users run date, they'll get the message. -# Also useful for the "comp.sources" version. - -# Zone NAME GMTOFF RULES FORMAT -Zone Factory 0 - "Local time zone must be set--see zic manual page" diff --git a/share/zoneinfo/datfiles/leapseconds b/share/zoneinfo/datfiles/leapseconds deleted file mode 100644 index cc7c6b4..0000000 --- a/share/zoneinfo/datfiles/leapseconds +++ /dev/null @@ -1,31 +0,0 @@ -# @(#)leapseconds 8.1 (Berkeley) 6/29/93 - -# Allowance for leapseconds added to each timezone file. - -# The correction (+ or -) is made at the given time, so lines -# will typically look like: -# Leap YEAR MON DAY 23:59:60 + R/S -# or -# Leap YEAR MON DAY 23:59:59 - R/S - -# If the leapsecond is Rolling (R) the given time is local time -# If the leapsecond is Stationary (S) the given time is GMT - -# Leap YEAR MONTH DAY HH:MM:SS CORR R/S -Leap 1972 Jun 30 23:59:60 + S -Leap 1972 Dec 31 23:59:60 + S -Leap 1973 Dec 31 23:59:60 + S -Leap 1974 Dec 31 23:59:60 + S -Leap 1975 Dec 31 23:59:60 + S -Leap 1976 Dec 31 23:59:60 + S -Leap 1977 Dec 31 23:59:60 + S -Leap 1978 Dec 31 23:59:60 + S -Leap 1979 Dec 31 23:59:60 + S -Leap 1981 Jun 30 23:59:60 + S -Leap 1982 Jun 30 23:59:60 + S -Leap 1983 Jun 30 23:59:60 + S -Leap 1985 Jun 30 23:59:60 + S -Leap 1987 Dec 31 23:59:60 + S -Leap 1989 Dec 31 23:59:60 + S -Leap 1990 Dec 31 23:59:60 + S -Leap 1993 Jun 30 23:59:60 + S diff --git a/share/zoneinfo/datfiles/northamerica b/share/zoneinfo/datfiles/northamerica deleted file mode 100644 index 53a1df1..0000000 --- a/share/zoneinfo/datfiles/northamerica +++ /dev/null @@ -1,321 +0,0 @@ -# @(#)northamerica 4.8 - -############################################################################### - -# United States - -# From Arthur David Olson: -# 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. - -# 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. - -# From Arthur David Olson: -# The above has been confirmed by Bob Devine; we'll go with it here. - -# From Arthur David Olson: -# 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 - -# From Bob Devine (January 28, 1988): -# ...Alaska (and Hawaii) had the timezone names changed in 1967. -# old new -# Pacific Standard Time(PST) -same- -# Yukon Standard Time(YST) -same- -# Central Alaska S.T. (CAT) Alaska-Hawaii St[an]dard Time (AHST) -# Nome Standard Time (NT) Bering Standard Time (BST) -# -# ...Alaska's timezone lines were redrawn in 1983 to give only 2 tz. -# The YST zone now covers nearly all of the state, AHST just part -# of the Aleutian islands. No DST. - -# From U. S. Naval Observatory (January 19, 1989): -# USA EASTERN 5 H BEHIND UTC NEW YORK, WASHINGTON -# USA EASTERN 4 H BEHIND UTC APR 3 - OCT 30 -# USA CENTRAL 6 H BEHIND UTC CHICAGO, HOUSTON -# USA CENTRAL 5 H BEHIND UTC APR 3 - OCT 30 -# USA MOUNTAIN 7 H BEHIND UTC DENVER -# USA MOUNTAIN 6 H BEHIND UTC APR 3 - OCT 30 -# USA PACIFIC 8 H BEHIND UTC L.A., SAN FRANCISCO -# USA PACIFIC 7 H BEHIND UTC APR 3 - OCT 30 -# USA ALASKA STD 9 H BEHIND UTC MOST OF ALASKA (AKST) -# USA ALASKA STD 8 H BEHIND UTC APR 3 - OCT 30 (AKDT) -# USA ALEUTIAN 10 H BEHIND UTC ISLANDS WEST OF 170W -# USA - " - 9 H BEHIND UTC APR 3 - OCT 30 -# USA HAWAII 10 H BEHIND UTC -# USA BERING 11 H BEHIND UTC SAMOA, MIDWAY - -# From Arthur David Olson (January 21, 1989): -# The above dates are for 1988. -# Note the "AKST" and "AKDT" abbreviations, the claim that there's -# no DST in Samoa, and the claim that there is DST in Alaska and the -# Aleutians. - -# From Arthur David Olson (February 13, 1988): -# Legal standard time zone names, from United States Code (1982 Edition and -# Supplement III), Title 15, Chapter 6, Section 260 and forward. First, names -# up to April 1, 1967 (when most provisions of the Uniform Time Act of 1966 -# took effect), as explained in sections 263 and 261: -# (none) -# United States standard eastern time -# United States standard mountain time -# United States standard central time -# United States standard Pacific time -# (none) -# United States standard Alaska time -# (none) -# Next, names from April 1, 1967 until November 30, 1983 (the date for -# public law 98-181): -# Atlantic standard time -# eastern standard time -# central standard time -# mountain standard time -# Pacific standard time -# Yukon standard time -# Alaska-Hawaii standard time -# Bering standard time -# And after November 30, 1983: -# Atlantic standard time -# eastern standard time -# central standard time -# mountain standard time -# Pacific standard time -# Alaska standard time -# Hawaii-Aleutian standard time -# Samoa standard time -# The law doesn't give abbreviations. - -# Easy stuff first--including Alaska, where we ignore history (since we -# can't tell if we should give Yukon time or Alaska-Hawaii time for "old" -# times). - -# 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/Alaska -9:00 US AK%sT # Abbreviation per USNO - -# 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 - -# From Arthur David Olson (February 13, 1988): -# However. . .a writer from the Inter Tribal Council of Arizona, Inc., -# notes in private correspondence dated 12/28/87 that "Presently, only the -# Navajo Nation participates in the Daylight Saving Time policy, due to its -# large size and location in three states." (The "only" means that other -# tribal nations don't use DST.) - -Link US/Mountain Navajo - -# From Bob Devine (January 28, 1988): -# Michigan didn't observe DST from 1968 to 1973. - -Zone US/Michigan -5:00 US E%sT 1968 - -5:00 - EST 1973 - -5:00 US E%sT - -# Samoa just changes names. No DST, per Naval Observatory. - -Zone US/Samoa -11:00 - NST 1967 Apr 1 # N=Nome - -11:00 - BST 1983 Nov 30 # B=Bering - -11:00 - SST # S=Samoa - -# Aleutian has a name change. DST, per Naval Observatory. - -Zone US/Aleutian -10:00 US AH%sT 1983 Nov 30 - -10:00 US HA%sT - -# From Arthur David Olson: -# 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 - -# 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. - -# From Bob Devine (January 28, 1988): -# All of Canada did have DST from your first rule except Saskatchewan. -# Which parts did not observe DST is hard to pinpoint but most of the -# province follows the rules. -# NOTE: those that didn't have DST for that rule, also -# probably did not have it for several years previous. - -# From U. S. Naval Observatory (January 19, 1989): -# CANADA NEW FDL 3.5H BEHIND UTC ST.JOHN'S -# CANADA NEW FDL 1.5H BEHIND UTC APR 3 - OCT 29 -# CANADA ATLANTIC 4 H BEHIND UTC HALIFAX -# CANADA ATLANTIC 3 H BEHIND UTC APR 3 - OCT 29 -# CANADA EASTERN 5 H BEHIND UTC TORONTO, MONTREAL, OTTAWA -# CANADA EASTERN 4 H BEHIND UTC APR 3 - OCT 29 -# CANADA CENTRAL 6 H BEHIND UTC REGINA, WINNIPEG -# CANADA CENTRAL 5 H BEHIND UTC APR 3 - OCT 29 -# CANADA MOUNTAIN 7 H BEHIND UTC CALGARY, EDMONTON -# CANADA MOUNTAIN 6 H BEHIND UTC APR 3 - OCT 29 -# CANADA PACIFIC 8 H BEHIND UTC VANCOUVER -# CANADA PACIFIC 7 H BEHIND UTC APR 3 - OCT 29 -# CANADA YUKON SAME AS PACIFIC DAWSON - -# From Arthur David Olson (January 21, 1989): -# April 3 fell on a Sunday in 1988; October 29 fell on a Sunday in 1989. Ahem. -# Note claim that there's double DST in Newfoundland and that Yukon should -# be same as Pacific. Stick with rules posted in 1988 until more authoritative -# information is available. - -# 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/East-Saskatchewan -6:00 - CST # No DST as of 1987 -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 - -# From Guy Harris: -# Rules are from the Official Airline Guide, Worldwide Edition, for 1987. -# Rules prior to 1987 are unknown. -# The comments in the OAG say "Only Ensenada, Mexicale, San Felipe and Tijuana -# observe DST." This is presumably Baja California Norte, above 28th parallel, -# as listed there; Mexico/BajaSur is for "Baja California Sur and N. Pacific -# Coast (States of Sinaloa and Sonora)." - -# From Bob Devine (January 28, 1988): -# The Federal District (where Mexico City is) has observed [DST] several -# times but not recently. -# -# I don't where to drawn the line in the North Baja area. 28th latitude -# sounds good -- but it may be higher (how far [d]o radio stations from -# San Diego affect culture?). -# -# The dates of DST probably go back to 1981. The rules are the same as -# US's. This is going to be a headache for US presidential electi[o]n years! - -# From Arthur David Olson (February 13, 1988) -# Since the 1981 starting date is only "probable," we'll keep the 1987 -# starting date below. - -# From U. S. Naval Observatory (January 19, 1989): -# MEXICO BAJA CAL N 7 H BEHIND UTC BAJA CALIFORNIA SUR AND -# MEXICO BAJA CAL N N. PACIFIC COAST (STATES -# MEXICO BAJA CAL N OF SINALOA AND SONORA) -# MEXICO BAJA CAL N 8 H BEHIND UTC ABOVE 28TH PARALLAL APR 3 -# MEXICO BAJA CAL N - OCT 29 -# MEXICO BAJA CAL N 7 H BEHIND UTC ABOVE 28TH PARALLAL APR 3 -# MEXICO BAJA CAL N - 0CT 29 -# MEXICO 6 H BEHIND UTC STATES OF DURANGO, -# MEXICO COAHUILA, NUEVO LEON, -# MEXICO TAMAULIPAS -# MEXICO 5 H BEHIND UTC STATES OF DURANGO, -# MEXICO COAHUILA, NUEVO LEON, -# MEXICO TAMAULIPAS APR 3 - OCT 29 -# MEXICO 6 H BEHIND UTC GENERAL MEXICO, STATES OF -# MEXICO CAMPECHE, QUINTANA ROO AND -# MEXICO YUCATAN - -# From Arthur David Olson (January 21, 1989): -# April 3 fell on a Sunday in 1988; October 29 fell on a Sunday in 1989. Ahem. -# USNO claims there should be four Mexican zones rather than three: -# a zone that's GMT-8 with DST; a zone that's always GMT-7; -# a zone that's GMT-6 with DST; and a zone that's always GMT-6. -# Wait for more authoritative information before changing. - -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Mexico 1987 max - Oct lastSun 2:00 0 S -Rule Mexico 1987 max - Apr Sun>=1 2:00 1:00 D - -# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] -Zone Mexico/BajaNorte -8:00 Mexico P%sT -Zone Mexico/BajaSur -7:00 - MST -Zone Mexico/General -6:00 - CST - -############################################################################### - -# Jamaica - -# From Bob Devine (January 28, 1988): -# Follows US rules. - -# From U. S. Naval Observatory (January 19, 1989): -# JAMAICA 5 H BEHIND UTC - -Link US/Eastern Jamaica - -############################################################################### - -# Cuba - -# From Bob Devine (January 28, 1988): -# . . .DST is from 2nd Sunday in May to 2nd Sunday in October since 1981. -# Change at midnight. In 1979 & 1980, started at 3rd Sunday in March -# (I think). - -# From U. S. Naval Observatory (January 19, 1989): -# CUBA 5 H BEHIND UTC -# CUBA 4 H BEHIND UTC MAR 20 - OCT 8 - -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Cuba 1979 1980 - Mar Sun>=15 0:00 1:00 D -Rule Cuba 1979 1980 - Oct Sun>=8 0:00 0 S -Rule Cuba 1981 max - May Sun>=8 0:00 1:00 D -Rule Cuba 1981 max - Oct Sun>=8 0:00 0 S - -# Zone NAME GMTOFF RULES/SAVE FORMAT -Zone Cuba -5:00 Cuba C%sT diff --git a/share/zoneinfo/datfiles/pacificnew b/share/zoneinfo/datfiles/pacificnew deleted file mode 100644 index 8e6850c..0000000 --- a/share/zoneinfo/datfiles/pacificnew +++ /dev/null @@ -1,21 +0,0 @@ -# @(#)pacificnew 4.4 - -# From Arthur David Olson (January 18, 1989): -# On November 10, 1987, the U. S. House of Representatives passed a bill -# (H.R. 435), the "Uniform Poll Closing Time Act", establishing -# "Pacific Presidential Election Time"; it was not acted on by the Senate -# before the end of the 100th Congress and so died. -# The bill has been reintroduced in the 101st Congress as H. R. 18; -# H. R. 96 also deals with poll closing time. Either bill would have to be -# passed by both the House and Senate and signed by the President (or have -# the President's veto overridden by the House and Senate) before becoming law. - -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Twilite 1989 max - Apr Sun>=1 2:00 1:00 D -Rule Twilite 1989 max uspres Oct lastSun 2:00 1:00 PE -Rule Twilite 1989 max uspres Nov Sun>=7 2:00 0 S -Rule Twilite 1989 max nonpres Oct lastSun 2:00 0 S - -# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] -Zone US/Pacific-New -8:00 US P%sT 1989 - -8:00 Twilite P%sT diff --git a/share/zoneinfo/datfiles/solar87 b/share/zoneinfo/datfiles/solar87 deleted file mode 100644 index 5067457..0000000 --- a/share/zoneinfo/datfiles/solar87 +++ /dev/null @@ -1,386 +0,0 @@ -# @(#)solar87 4.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/Riyadh87 3:07:04 - ?? 1987 - 3:07:04 sol87 ?? 1988 - 3:07:04 - ?? diff --git a/share/zoneinfo/datfiles/solar88 b/share/zoneinfo/datfiles/solar88 deleted file mode 100644 index e7f647e..0000000 --- a/share/zoneinfo/datfiles/solar88 +++ /dev/null @@ -1,386 +0,0 @@ -# @(#)solar88 4.2 - -# Apparent noon times below are for Riyadh; they're a bit off for other places. -# Times were computed using formulas in the U.S. Naval Observatory's -# Almanac for Computers 1988; 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 sol88 1988 only - Jan 1 12:03:15s -0:03:15 - -Rule sol88 1988 only - Jan 2 12:03:40s -0:03:40 - -Rule sol88 1988 only - Jan 3 12:04:10s -0:04:10 - -Rule sol88 1988 only - Jan 4 12:04:40s -0:04:40 - -Rule sol88 1988 only - Jan 5 12:05:05s -0:05:05 - -Rule sol88 1988 only - Jan 6 12:05:30s -0:05:30 - -Rule sol88 1988 only - Jan 7 12:06:00s -0:06:00 - -Rule sol88 1988 only - Jan 8 12:06:25s -0:06:25 - -Rule sol88 1988 only - Jan 9 12:06:50s -0:06:50 - -Rule sol88 1988 only - Jan 10 12:07:15s -0:07:15 - -Rule sol88 1988 only - Jan 11 12:07:40s -0:07:40 - -Rule sol88 1988 only - Jan 12 12:08:05s -0:08:05 - -Rule sol88 1988 only - Jan 13 12:08:25s -0:08:25 - -Rule sol88 1988 only - Jan 14 12:08:50s -0:08:50 - -Rule sol88 1988 only - Jan 15 12:09:10s -0:09:10 - -Rule sol88 1988 only - Jan 16 12:09:30s -0:09:30 - -Rule sol88 1988 only - Jan 17 12:09:50s -0:09:50 - -Rule sol88 1988 only - Jan 18 12:10:10s -0:10:10 - -Rule sol88 1988 only - Jan 19 12:10:30s -0:10:30 - -Rule sol88 1988 only - Jan 20 12:10:50s -0:10:50 - -Rule sol88 1988 only - Jan 21 12:11:05s -0:11:05 - -Rule sol88 1988 only - Jan 22 12:11:25s -0:11:25 - -Rule sol88 1988 only - Jan 23 12:11:40s -0:11:40 - -Rule sol88 1988 only - Jan 24 12:11:55s -0:11:55 - -Rule sol88 1988 only - Jan 25 12:12:10s -0:12:10 - -Rule sol88 1988 only - Jan 26 12:12:25s -0:12:25 - -Rule sol88 1988 only - Jan 27 12:12:40s -0:12:40 - -Rule sol88 1988 only - Jan 28 12:12:50s -0:12:50 - -Rule sol88 1988 only - Jan 29 12:13:00s -0:13:00 - -Rule sol88 1988 only - Jan 30 12:13:10s -0:13:10 - -Rule sol88 1988 only - Jan 31 12:13:20s -0:13:20 - -Rule sol88 1988 only - Feb 1 12:13:30s -0:13:30 - -Rule sol88 1988 only - Feb 2 12:13:40s -0:13:40 - -Rule sol88 1988 only - Feb 3 12:13:45s -0:13:45 - -Rule sol88 1988 only - Feb 4 12:13:55s -0:13:55 - -Rule sol88 1988 only - Feb 5 12:14:00s -0:14:00 - -Rule sol88 1988 only - Feb 6 12:14:05s -0:14:05 - -Rule sol88 1988 only - Feb 7 12:14:10s -0:14:10 - -Rule sol88 1988 only - Feb 8 12:14:10s -0:14:10 - -Rule sol88 1988 only - Feb 9 12:14:15s -0:14:15 - -Rule sol88 1988 only - Feb 10 12:14:15s -0:14:15 - -Rule sol88 1988 only - Feb 11 12:14:15s -0:14:15 - -Rule sol88 1988 only - Feb 12 12:14:15s -0:14:15 - -Rule sol88 1988 only - Feb 13 12:14:15s -0:14:15 - -Rule sol88 1988 only - Feb 14 12:14:15s -0:14:15 - -Rule sol88 1988 only - Feb 15 12:14:10s -0:14:10 - -Rule sol88 1988 only - Feb 16 12:14:10s -0:14:10 - -Rule sol88 1988 only - Feb 17 12:14:05s -0:14:05 - -Rule sol88 1988 only - Feb 18 12:14:00s -0:14:00 - -Rule sol88 1988 only - Feb 19 12:13:55s -0:13:55 - -Rule sol88 1988 only - Feb 20 12:13:50s -0:13:50 - -Rule sol88 1988 only - Feb 21 12:13:45s -0:13:45 - -Rule sol88 1988 only - Feb 22 12:13:40s -0:13:40 - -Rule sol88 1988 only - Feb 23 12:13:30s -0:13:30 - -Rule sol88 1988 only - Feb 24 12:13:20s -0:13:20 - -Rule sol88 1988 only - Feb 25 12:13:15s -0:13:15 - -Rule sol88 1988 only - Feb 26 12:13:05s -0:13:05 - -Rule sol88 1988 only - Feb 27 12:12:55s -0:12:55 - -Rule sol88 1988 only - Feb 28 12:12:45s -0:12:45 - -Rule sol88 1988 only - Feb 29 12:12:30s -0:12:30 - -Rule sol88 1988 only - Mar 1 12:12:20s -0:12:20 - -Rule sol88 1988 only - Mar 2 12:12:10s -0:12:10 - -Rule sol88 1988 only - Mar 3 12:11:55s -0:11:55 - -Rule sol88 1988 only - Mar 4 12:11:45s -0:11:45 - -Rule sol88 1988 only - Mar 5 12:11:30s -0:11:30 - -Rule sol88 1988 only - Mar 6 12:11:15s -0:11:15 - -Rule sol88 1988 only - Mar 7 12:11:00s -0:11:00 - -Rule sol88 1988 only - Mar 8 12:10:45s -0:10:45 - -Rule sol88 1988 only - Mar 9 12:10:30s -0:10:30 - -Rule sol88 1988 only - Mar 10 12:10:15s -0:10:15 - -Rule sol88 1988 only - Mar 11 12:10:00s -0:10:00 - -Rule sol88 1988 only - Mar 12 12:09:45s -0:09:45 - -Rule sol88 1988 only - Mar 13 12:09:30s -0:09:30 - -Rule sol88 1988 only - Mar 14 12:09:10s -0:09:10 - -Rule sol88 1988 only - Mar 15 12:08:55s -0:08:55 - -Rule sol88 1988 only - Mar 16 12:08:40s -0:08:40 - -Rule sol88 1988 only - Mar 17 12:08:20s -0:08:20 - -Rule sol88 1988 only - Mar 18 12:08:05s -0:08:05 - -Rule sol88 1988 only - Mar 19 12:07:45s -0:07:45 - -Rule sol88 1988 only - Mar 20 12:07:30s -0:07:30 - -Rule sol88 1988 only - Mar 21 12:07:10s -0:07:10 - -Rule sol88 1988 only - Mar 22 12:06:50s -0:06:50 - -Rule sol88 1988 only - Mar 23 12:06:35s -0:06:35 - -Rule sol88 1988 only - Mar 24 12:06:15s -0:06:15 - -Rule sol88 1988 only - Mar 25 12:06:00s -0:06:00 - -Rule sol88 1988 only - Mar 26 12:05:40s -0:05:40 - -Rule sol88 1988 only - Mar 27 12:05:20s -0:05:20 - -Rule sol88 1988 only - Mar 28 12:05:05s -0:05:05 - -Rule sol88 1988 only - Mar 29 12:04:45s -0:04:45 - -Rule sol88 1988 only - Mar 30 12:04:25s -0:04:25 - -Rule sol88 1988 only - Mar 31 12:04:10s -0:04:10 - -Rule sol88 1988 only - Apr 1 12:03:50s -0:03:50 - -Rule sol88 1988 only - Apr 2 12:03:35s -0:03:35 - -Rule sol88 1988 only - Apr 3 12:03:15s -0:03:15 - -Rule sol88 1988 only - Apr 4 12:03:00s -0:03:00 - -Rule sol88 1988 only - Apr 5 12:02:40s -0:02:40 - -Rule sol88 1988 only - Apr 6 12:02:25s -0:02:25 - -Rule sol88 1988 only - Apr 7 12:02:05s -0:02:05 - -Rule sol88 1988 only - Apr 8 12:01:50s -0:01:50 - -Rule sol88 1988 only - Apr 9 12:01:35s -0:01:35 - -Rule sol88 1988 only - Apr 10 12:01:15s -0:01:15 - -Rule sol88 1988 only - Apr 11 12:01:00s -0:01:00 - -Rule sol88 1988 only - Apr 12 12:00:45s -0:00:45 - -Rule sol88 1988 only - Apr 13 12:00:30s -0:00:30 - -Rule sol88 1988 only - Apr 14 12:00:15s -0:00:15 - -Rule sol88 1988 only - Apr 15 12:00:00s 0:00:00 - -Rule sol88 1988 only - Apr 16 11:59:45s 0:00:15 - -Rule sol88 1988 only - Apr 17 11:59:30s 0:00:30 - -Rule sol88 1988 only - Apr 18 11:59:20s 0:00:40 - -Rule sol88 1988 only - Apr 19 11:59:05s 0:00:55 - -Rule sol88 1988 only - Apr 20 11:58:55s 0:01:05 - -Rule sol88 1988 only - Apr 21 11:58:40s 0:01:20 - -Rule sol88 1988 only - Apr 22 11:58:30s 0:01:30 - -Rule sol88 1988 only - Apr 23 11:58:15s 0:01:45 - -Rule sol88 1988 only - Apr 24 11:58:05s 0:01:55 - -Rule sol88 1988 only - Apr 25 11:57:55s 0:02:05 - -Rule sol88 1988 only - Apr 26 11:57:45s 0:02:15 - -Rule sol88 1988 only - Apr 27 11:57:35s 0:02:25 - -Rule sol88 1988 only - Apr 28 11:57:30s 0:02:30 - -Rule sol88 1988 only - Apr 29 11:57:20s 0:02:40 - -Rule sol88 1988 only - Apr 30 11:57:10s 0:02:50 - -Rule sol88 1988 only - May 1 11:57:05s 0:02:55 - -Rule sol88 1988 only - May 2 11:56:55s 0:03:05 - -Rule sol88 1988 only - May 3 11:56:50s 0:03:10 - -Rule sol88 1988 only - May 4 11:56:45s 0:03:15 - -Rule sol88 1988 only - May 5 11:56:40s 0:03:20 - -Rule sol88 1988 only - May 6 11:56:35s 0:03:25 - -Rule sol88 1988 only - May 7 11:56:30s 0:03:30 - -Rule sol88 1988 only - May 8 11:56:25s 0:03:35 - -Rule sol88 1988 only - May 9 11:56:25s 0:03:35 - -Rule sol88 1988 only - May 10 11:56:20s 0:03:40 - -Rule sol88 1988 only - May 11 11:56:20s 0:03:40 - -Rule sol88 1988 only - May 12 11:56:20s 0:03:40 - -Rule sol88 1988 only - May 13 11:56:20s 0:03:40 - -Rule sol88 1988 only - May 14 11:56:20s 0:03:40 - -Rule sol88 1988 only - May 15 11:56:20s 0:03:40 - -Rule sol88 1988 only - May 16 11:56:20s 0:03:40 - -Rule sol88 1988 only - May 17 11:56:20s 0:03:40 - -Rule sol88 1988 only - May 18 11:56:25s 0:03:35 - -Rule sol88 1988 only - May 19 11:56:25s 0:03:35 - -Rule sol88 1988 only - May 20 11:56:30s 0:03:30 - -Rule sol88 1988 only - May 21 11:56:35s 0:03:25 - -Rule sol88 1988 only - May 22 11:56:40s 0:03:20 - -Rule sol88 1988 only - May 23 11:56:45s 0:03:15 - -Rule sol88 1988 only - May 24 11:56:50s 0:03:10 - -Rule sol88 1988 only - May 25 11:56:55s 0:03:05 - -Rule sol88 1988 only - May 26 11:57:00s 0:03:00 - -Rule sol88 1988 only - May 27 11:57:05s 0:02:55 - -Rule sol88 1988 only - May 28 11:57:15s 0:02:45 - -Rule sol88 1988 only - May 29 11:57:20s 0:02:40 - -Rule sol88 1988 only - May 30 11:57:30s 0:02:30 - -Rule sol88 1988 only - May 31 11:57:40s 0:02:20 - -Rule sol88 1988 only - Jun 1 11:57:50s 0:02:10 - -Rule sol88 1988 only - Jun 2 11:57:55s 0:02:05 - -Rule sol88 1988 only - Jun 3 11:58:05s 0:01:55 - -Rule sol88 1988 only - Jun 4 11:58:15s 0:01:45 - -Rule sol88 1988 only - Jun 5 11:58:30s 0:01:30 - -Rule sol88 1988 only - Jun 6 11:58:40s 0:01:20 - -Rule sol88 1988 only - Jun 7 11:58:50s 0:01:10 - -Rule sol88 1988 only - Jun 8 11:59:00s 0:01:00 - -Rule sol88 1988 only - Jun 9 11:59:15s 0:00:45 - -Rule sol88 1988 only - Jun 10 11:59:25s 0:00:35 - -Rule sol88 1988 only - Jun 11 11:59:35s 0:00:25 - -Rule sol88 1988 only - Jun 12 11:59:50s 0:00:10 - -Rule sol88 1988 only - Jun 13 12:00:00s 0:00:00 - -Rule sol88 1988 only - Jun 14 12:00:15s -0:00:15 - -Rule sol88 1988 only - Jun 15 12:00:25s -0:00:25 - -Rule sol88 1988 only - Jun 16 12:00:40s -0:00:40 - -Rule sol88 1988 only - Jun 17 12:00:55s -0:00:55 - -Rule sol88 1988 only - Jun 18 12:01:05s -0:01:05 - -Rule sol88 1988 only - Jun 19 12:01:20s -0:01:20 - -Rule sol88 1988 only - Jun 20 12:01:30s -0:01:30 - -Rule sol88 1988 only - Jun 21 12:01:45s -0:01:45 - -Rule sol88 1988 only - Jun 22 12:02:00s -0:02:00 - -Rule sol88 1988 only - Jun 23 12:02:10s -0:02:10 - -Rule sol88 1988 only - Jun 24 12:02:25s -0:02:25 - -Rule sol88 1988 only - Jun 25 12:02:35s -0:02:35 - -Rule sol88 1988 only - Jun 26 12:02:50s -0:02:50 - -Rule sol88 1988 only - Jun 27 12:03:00s -0:03:00 - -Rule sol88 1988 only - Jun 28 12:03:15s -0:03:15 - -Rule sol88 1988 only - Jun 29 12:03:25s -0:03:25 - -Rule sol88 1988 only - Jun 30 12:03:40s -0:03:40 - -Rule sol88 1988 only - Jul 1 12:03:50s -0:03:50 - -Rule sol88 1988 only - Jul 2 12:04:00s -0:04:00 - -Rule sol88 1988 only - Jul 3 12:04:10s -0:04:10 - -Rule sol88 1988 only - Jul 4 12:04:25s -0:04:25 - -Rule sol88 1988 only - Jul 5 12:04:35s -0:04:35 - -Rule sol88 1988 only - Jul 6 12:04:45s -0:04:45 - -Rule sol88 1988 only - Jul 7 12:04:55s -0:04:55 - -Rule sol88 1988 only - Jul 8 12:05:05s -0:05:05 - -Rule sol88 1988 only - Jul 9 12:05:10s -0:05:10 - -Rule sol88 1988 only - Jul 10 12:05:20s -0:05:20 - -Rule sol88 1988 only - Jul 11 12:05:30s -0:05:30 - -Rule sol88 1988 only - Jul 12 12:05:35s -0:05:35 - -Rule sol88 1988 only - Jul 13 12:05:45s -0:05:45 - -Rule sol88 1988 only - Jul 14 12:05:50s -0:05:50 - -Rule sol88 1988 only - Jul 15 12:05:55s -0:05:55 - -Rule sol88 1988 only - Jul 16 12:06:00s -0:06:00 - -Rule sol88 1988 only - Jul 17 12:06:05s -0:06:05 - -Rule sol88 1988 only - Jul 18 12:06:10s -0:06:10 - -Rule sol88 1988 only - Jul 19 12:06:15s -0:06:15 - -Rule sol88 1988 only - Jul 20 12:06:20s -0:06:20 - -Rule sol88 1988 only - Jul 21 12:06:25s -0:06:25 - -Rule sol88 1988 only - Jul 22 12:06:25s -0:06:25 - -Rule sol88 1988 only - Jul 23 12:06:25s -0:06:25 - -Rule sol88 1988 only - Jul 24 12:06:30s -0:06:30 - -Rule sol88 1988 only - Jul 25 12:06:30s -0:06:30 - -Rule sol88 1988 only - Jul 26 12:06:30s -0:06:30 - -Rule sol88 1988 only - Jul 27 12:06:30s -0:06:30 - -Rule sol88 1988 only - Jul 28 12:06:30s -0:06:30 - -Rule sol88 1988 only - Jul 29 12:06:25s -0:06:25 - -Rule sol88 1988 only - Jul 30 12:06:25s -0:06:25 - -Rule sol88 1988 only - Jul 31 12:06:20s -0:06:20 - -Rule sol88 1988 only - Aug 1 12:06:15s -0:06:15 - -Rule sol88 1988 only - Aug 2 12:06:15s -0:06:15 - -Rule sol88 1988 only - Aug 3 12:06:10s -0:06:10 - -Rule sol88 1988 only - Aug 4 12:06:05s -0:06:05 - -Rule sol88 1988 only - Aug 5 12:05:55s -0:05:55 - -Rule sol88 1988 only - Aug 6 12:05:50s -0:05:50 - -Rule sol88 1988 only - Aug 7 12:05:45s -0:05:45 - -Rule sol88 1988 only - Aug 8 12:05:35s -0:05:35 - -Rule sol88 1988 only - Aug 9 12:05:25s -0:05:25 - -Rule sol88 1988 only - Aug 10 12:05:20s -0:05:20 - -Rule sol88 1988 only - Aug 11 12:05:10s -0:05:10 - -Rule sol88 1988 only - Aug 12 12:05:00s -0:05:00 - -Rule sol88 1988 only - Aug 13 12:04:50s -0:04:50 - -Rule sol88 1988 only - Aug 14 12:04:35s -0:04:35 - -Rule sol88 1988 only - Aug 15 12:04:25s -0:04:25 - -Rule sol88 1988 only - Aug 16 12:04:15s -0:04:15 - -Rule sol88 1988 only - Aug 17 12:04:00s -0:04:00 - -Rule sol88 1988 only - Aug 18 12:03:50s -0:03:50 - -Rule sol88 1988 only - Aug 19 12:03:35s -0:03:35 - -Rule sol88 1988 only - Aug 20 12:03:20s -0:03:20 - -Rule sol88 1988 only - Aug 21 12:03:05s -0:03:05 - -Rule sol88 1988 only - Aug 22 12:02:50s -0:02:50 - -Rule sol88 1988 only - Aug 23 12:02:35s -0:02:35 - -Rule sol88 1988 only - Aug 24 12:02:20s -0:02:20 - -Rule sol88 1988 only - Aug 25 12:02:00s -0:02:00 - -Rule sol88 1988 only - Aug 26 12:01:45s -0:01:45 - -Rule sol88 1988 only - Aug 27 12:01:30s -0:01:30 - -Rule sol88 1988 only - Aug 28 12:01:10s -0:01:10 - -Rule sol88 1988 only - Aug 29 12:00:50s -0:00:50 - -Rule sol88 1988 only - Aug 30 12:00:35s -0:00:35 - -Rule sol88 1988 only - Aug 31 12:00:15s -0:00:15 - -Rule sol88 1988 only - Sep 1 11:59:55s 0:00:05 - -Rule sol88 1988 only - Sep 2 11:59:35s 0:00:25 - -Rule sol88 1988 only - Sep 3 11:59:20s 0:00:40 - -Rule sol88 1988 only - Sep 4 11:59:00s 0:01:00 - -Rule sol88 1988 only - Sep 5 11:58:40s 0:01:20 - -Rule sol88 1988 only - Sep 6 11:58:20s 0:01:40 - -Rule sol88 1988 only - Sep 7 11:58:00s 0:02:00 - -Rule sol88 1988 only - Sep 8 11:57:35s 0:02:25 - -Rule sol88 1988 only - Sep 9 11:57:15s 0:02:45 - -Rule sol88 1988 only - Sep 10 11:56:55s 0:03:05 - -Rule sol88 1988 only - Sep 11 11:56:35s 0:03:25 - -Rule sol88 1988 only - Sep 12 11:56:15s 0:03:45 - -Rule sol88 1988 only - Sep 13 11:55:50s 0:04:10 - -Rule sol88 1988 only - Sep 14 11:55:30s 0:04:30 - -Rule sol88 1988 only - Sep 15 11:55:10s 0:04:50 - -Rule sol88 1988 only - Sep 16 11:54:50s 0:05:10 - -Rule sol88 1988 only - Sep 17 11:54:25s 0:05:35 - -Rule sol88 1988 only - Sep 18 11:54:05s 0:05:55 - -Rule sol88 1988 only - Sep 19 11:53:45s 0:06:15 - -Rule sol88 1988 only - Sep 20 11:53:25s 0:06:35 - -Rule sol88 1988 only - Sep 21 11:53:00s 0:07:00 - -Rule sol88 1988 only - Sep 22 11:52:40s 0:07:20 - -Rule sol88 1988 only - Sep 23 11:52:20s 0:07:40 - -Rule sol88 1988 only - Sep 24 11:52:00s 0:08:00 - -Rule sol88 1988 only - Sep 25 11:51:40s 0:08:20 - -Rule sol88 1988 only - Sep 26 11:51:15s 0:08:45 - -Rule sol88 1988 only - Sep 27 11:50:55s 0:09:05 - -Rule sol88 1988 only - Sep 28 11:50:35s 0:09:25 - -Rule sol88 1988 only - Sep 29 11:50:15s 0:09:45 - -Rule sol88 1988 only - Sep 30 11:49:55s 0:10:05 - -Rule sol88 1988 only - Oct 1 11:49:35s 0:10:25 - -Rule sol88 1988 only - Oct 2 11:49:20s 0:10:40 - -Rule sol88 1988 only - Oct 3 11:49:00s 0:11:00 - -Rule sol88 1988 only - Oct 4 11:48:40s 0:11:20 - -Rule sol88 1988 only - Oct 5 11:48:25s 0:11:35 - -Rule sol88 1988 only - Oct 6 11:48:05s 0:11:55 - -Rule sol88 1988 only - Oct 7 11:47:50s 0:12:10 - -Rule sol88 1988 only - Oct 8 11:47:30s 0:12:30 - -Rule sol88 1988 only - Oct 9 11:47:15s 0:12:45 - -Rule sol88 1988 only - Oct 10 11:47:00s 0:13:00 - -Rule sol88 1988 only - Oct 11 11:46:45s 0:13:15 - -Rule sol88 1988 only - Oct 12 11:46:30s 0:13:30 - -Rule sol88 1988 only - Oct 13 11:46:15s 0:13:45 - -Rule sol88 1988 only - Oct 14 11:46:00s 0:14:00 - -Rule sol88 1988 only - Oct 15 11:45:45s 0:14:15 - -Rule sol88 1988 only - Oct 16 11:45:35s 0:14:25 - -Rule sol88 1988 only - Oct 17 11:45:20s 0:14:40 - -Rule sol88 1988 only - Oct 18 11:45:10s 0:14:50 - -Rule sol88 1988 only - Oct 19 11:45:00s 0:15:00 - -Rule sol88 1988 only - Oct 20 11:44:45s 0:15:15 - -Rule sol88 1988 only - Oct 21 11:44:40s 0:15:20 - -Rule sol88 1988 only - Oct 22 11:44:30s 0:15:30 - -Rule sol88 1988 only - Oct 23 11:44:20s 0:15:40 - -Rule sol88 1988 only - Oct 24 11:44:10s 0:15:50 - -Rule sol88 1988 only - Oct 25 11:44:05s 0:15:55 - -Rule sol88 1988 only - Oct 26 11:44:00s 0:16:00 - -Rule sol88 1988 only - Oct 27 11:43:55s 0:16:05 - -Rule sol88 1988 only - Oct 28 11:43:50s 0:16:10 - -Rule sol88 1988 only - Oct 29 11:43:45s 0:16:15 - -Rule sol88 1988 only - Oct 30 11:43:40s 0:16:20 - -Rule sol88 1988 only - Oct 31 11:43:40s 0:16:20 - -Rule sol88 1988 only - Nov 1 11:43:35s 0:16:25 - -Rule sol88 1988 only - Nov 2 11:43:35s 0:16:25 - -Rule sol88 1988 only - Nov 3 11:43:35s 0:16:25 - -Rule sol88 1988 only - Nov 4 11:43:35s 0:16:25 - -Rule sol88 1988 only - Nov 5 11:43:40s 0:16:20 - -Rule sol88 1988 only - Nov 6 11:43:40s 0:16:20 - -Rule sol88 1988 only - Nov 7 11:43:45s 0:16:15 - -Rule sol88 1988 only - Nov 8 11:43:45s 0:16:15 - -Rule sol88 1988 only - Nov 9 11:43:50s 0:16:10 - -Rule sol88 1988 only - Nov 10 11:44:00s 0:16:00 - -Rule sol88 1988 only - Nov 11 11:44:05s 0:15:55 - -Rule sol88 1988 only - Nov 12 11:44:10s 0:15:50 - -Rule sol88 1988 only - Nov 13 11:44:20s 0:15:40 - -Rule sol88 1988 only - Nov 14 11:44:30s 0:15:30 - -Rule sol88 1988 only - Nov 15 11:44:40s 0:15:20 - -Rule sol88 1988 only - Nov 16 11:44:50s 0:15:10 - -Rule sol88 1988 only - Nov 17 11:45:00s 0:15:00 - -Rule sol88 1988 only - Nov 18 11:45:15s 0:14:45 - -Rule sol88 1988 only - Nov 19 11:45:25s 0:14:35 - -Rule sol88 1988 only - Nov 20 11:45:40s 0:14:20 - -Rule sol88 1988 only - Nov 21 11:45:55s 0:14:05 - -Rule sol88 1988 only - Nov 22 11:46:10s 0:13:50 - -Rule sol88 1988 only - Nov 23 11:46:30s 0:13:30 - -Rule sol88 1988 only - Nov 24 11:46:45s 0:13:15 - -Rule sol88 1988 only - Nov 25 11:47:05s 0:12:55 - -Rule sol88 1988 only - Nov 26 11:47:20s 0:12:40 - -Rule sol88 1988 only - Nov 27 11:47:40s 0:12:20 - -Rule sol88 1988 only - Nov 28 11:48:00s 0:12:00 - -Rule sol88 1988 only - Nov 29 11:48:25s 0:11:35 - -Rule sol88 1988 only - Nov 30 11:48:45s 0:11:15 - -Rule sol88 1988 only - Dec 1 11:49:05s 0:10:55 - -Rule sol88 1988 only - Dec 2 11:49:30s 0:10:30 - -Rule sol88 1988 only - Dec 3 11:49:55s 0:10:05 - -Rule sol88 1988 only - Dec 4 11:50:15s 0:09:45 - -Rule sol88 1988 only - Dec 5 11:50:40s 0:09:20 - -Rule sol88 1988 only - Dec 6 11:51:05s 0:08:55 - -Rule sol88 1988 only - Dec 7 11:51:35s 0:08:25 - -Rule sol88 1988 only - Dec 8 11:52:00s 0:08:00 - -Rule sol88 1988 only - Dec 9 11:52:25s 0:07:35 - -Rule sol88 1988 only - Dec 10 11:52:55s 0:07:05 - -Rule sol88 1988 only - Dec 11 11:53:20s 0:06:40 - -Rule sol88 1988 only - Dec 12 11:53:50s 0:06:10 - -Rule sol88 1988 only - Dec 13 11:54:15s 0:05:45 - -Rule sol88 1988 only - Dec 14 11:54:45s 0:05:15 - -Rule sol88 1988 only - Dec 15 11:55:15s 0:04:45 - -Rule sol88 1988 only - Dec 16 11:55:45s 0:04:15 - -Rule sol88 1988 only - Dec 17 11:56:15s 0:03:45 - -Rule sol88 1988 only - Dec 18 11:56:40s 0:03:20 - -Rule sol88 1988 only - Dec 19 11:57:10s 0:02:50 - -Rule sol88 1988 only - Dec 20 11:57:40s 0:02:20 - -Rule sol88 1988 only - Dec 21 11:58:10s 0:01:50 - -Rule sol88 1988 only - Dec 22 11:58:40s 0:01:20 - -Rule sol88 1988 only - Dec 23 11:59:10s 0:00:50 - -Rule sol88 1988 only - Dec 24 11:59:40s 0:00:20 - -Rule sol88 1988 only - Dec 25 12:00:10s -0:00:10 - -Rule sol88 1988 only - Dec 26 12:00:40s -0:00:40 - -Rule sol88 1988 only - Dec 27 12:01:10s -0:01:10 - -Rule sol88 1988 only - Dec 28 12:01:40s -0:01:40 - -Rule sol88 1988 only - Dec 29 12:02:10s -0:02:10 - -Rule sol88 1988 only - Dec 30 12:02:35s -0:02:35 - -Rule sol88 1988 only - Dec 31 12:03:05s -0:03:05 - - -# Riyadh is at about 46 degrees 46 minutes East: 3 hrs, 7 mins, 4 secs -# Before and after 1988, we'll operate on local mean solar time. - -# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] -Zone Mideast/Riyadh88 3:07:04 - ?? 1988 - 3:07:04 sol88 ?? 1989 - 3:07:04 - ?? diff --git a/share/zoneinfo/datfiles/solar89 b/share/zoneinfo/datfiles/solar89 deleted file mode 100644 index 4f25170..0000000 --- a/share/zoneinfo/datfiles/solar89 +++ /dev/null @@ -1,391 +0,0 @@ -# @(#)solar89 1.3 - -# Apparent noon times below are for Riyadh; they're a bit off for other places. -# Times were computed using a formula provided by the U. S. Naval Observatory: -# eqt = -105.8 * sin(l) + 596.2 * sin(2 * l) + 4.4 * sin(3 * l) -# -12.7 * sin(4 * l) - 429.0 * cos(l) - 2.1 * cos (2 * l) -# + 19.3 * cos(3 * l); -# where l is the "mean longitude of the Sun" given by -# l = 279.642 degrees + 0.985647 * d -# and d is the interval in days from January 0, 0 hours Universal Time -# (equaling the day of the year plus the fraction of a day from zero hours). -# The accuracy of the formula is plus or minus three seconds. -# -# 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 sol89 1989 only - Jan 1 12:03:35s -0:03:35 - -Rule sol89 1989 only - Jan 2 12:04:05s -0:04:05 - -Rule sol89 1989 only - Jan 3 12:04:30s -0:04:30 - -Rule sol89 1989 only - Jan 4 12:05:00s -0:05:00 - -Rule sol89 1989 only - Jan 5 12:05:25s -0:05:25 - -Rule sol89 1989 only - Jan 6 12:05:50s -0:05:50 - -Rule sol89 1989 only - Jan 7 12:06:15s -0:06:15 - -Rule sol89 1989 only - Jan 8 12:06:45s -0:06:45 - -Rule sol89 1989 only - Jan 9 12:07:10s -0:07:10 - -Rule sol89 1989 only - Jan 10 12:07:35s -0:07:35 - -Rule sol89 1989 only - Jan 11 12:07:55s -0:07:55 - -Rule sol89 1989 only - Jan 12 12:08:20s -0:08:20 - -Rule sol89 1989 only - Jan 13 12:08:45s -0:08:45 - -Rule sol89 1989 only - Jan 14 12:09:05s -0:09:05 - -Rule sol89 1989 only - Jan 15 12:09:25s -0:09:25 - -Rule sol89 1989 only - Jan 16 12:09:45s -0:09:45 - -Rule sol89 1989 only - Jan 17 12:10:05s -0:10:05 - -Rule sol89 1989 only - Jan 18 12:10:25s -0:10:25 - -Rule sol89 1989 only - Jan 19 12:10:45s -0:10:45 - -Rule sol89 1989 only - Jan 20 12:11:05s -0:11:05 - -Rule sol89 1989 only - Jan 21 12:11:20s -0:11:20 - -Rule sol89 1989 only - Jan 22 12:11:35s -0:11:35 - -Rule sol89 1989 only - Jan 23 12:11:55s -0:11:55 - -Rule sol89 1989 only - Jan 24 12:12:10s -0:12:10 - -Rule sol89 1989 only - Jan 25 12:12:20s -0:12:20 - -Rule sol89 1989 only - Jan 26 12:12:35s -0:12:35 - -Rule sol89 1989 only - Jan 27 12:12:50s -0:12:50 - -Rule sol89 1989 only - Jan 28 12:13:00s -0:13:00 - -Rule sol89 1989 only - Jan 29 12:13:10s -0:13:10 - -Rule sol89 1989 only - Jan 30 12:13:20s -0:13:20 - -Rule sol89 1989 only - Jan 31 12:13:30s -0:13:30 - -Rule sol89 1989 only - Feb 1 12:13:40s -0:13:40 - -Rule sol89 1989 only - Feb 2 12:13:45s -0:13:45 - -Rule sol89 1989 only - Feb 3 12:13:55s -0:13:55 - -Rule sol89 1989 only - Feb 4 12:14:00s -0:14:00 - -Rule sol89 1989 only - Feb 5 12:14:05s -0:14:05 - -Rule sol89 1989 only - Feb 6 12:14:10s -0:14:10 - -Rule sol89 1989 only - Feb 7 12:14:10s -0:14:10 - -Rule sol89 1989 only - Feb 8 12:14:15s -0:14:15 - -Rule sol89 1989 only - Feb 9 12:14:15s -0:14:15 - -Rule sol89 1989 only - Feb 10 12:14:20s -0:14:20 - -Rule sol89 1989 only - Feb 11 12:14:20s -0:14:20 - -Rule sol89 1989 only - Feb 12 12:14:20s -0:14:20 - -Rule sol89 1989 only - Feb 13 12:14:15s -0:14:15 - -Rule sol89 1989 only - Feb 14 12:14:15s -0:14:15 - -Rule sol89 1989 only - Feb 15 12:14:10s -0:14:10 - -Rule sol89 1989 only - Feb 16 12:14:10s -0:14:10 - -Rule sol89 1989 only - Feb 17 12:14:05s -0:14:05 - -Rule sol89 1989 only - Feb 18 12:14:00s -0:14:00 - -Rule sol89 1989 only - Feb 19 12:13:55s -0:13:55 - -Rule sol89 1989 only - Feb 20 12:13:50s -0:13:50 - -Rule sol89 1989 only - Feb 21 12:13:40s -0:13:40 - -Rule sol89 1989 only - Feb 22 12:13:35s -0:13:35 - -Rule sol89 1989 only - Feb 23 12:13:25s -0:13:25 - -Rule sol89 1989 only - Feb 24 12:13:15s -0:13:15 - -Rule sol89 1989 only - Feb 25 12:13:05s -0:13:05 - -Rule sol89 1989 only - Feb 26 12:12:55s -0:12:55 - -Rule sol89 1989 only - Feb 27 12:12:45s -0:12:45 - -Rule sol89 1989 only - Feb 28 12:12:35s -0:12:35 - -Rule sol89 1989 only - Mar 1 12:12:25s -0:12:25 - -Rule sol89 1989 only - Mar 2 12:12:10s -0:12:10 - -Rule sol89 1989 only - Mar 3 12:12:00s -0:12:00 - -Rule sol89 1989 only - Mar 4 12:11:45s -0:11:45 - -Rule sol89 1989 only - Mar 5 12:11:35s -0:11:35 - -Rule sol89 1989 only - Mar 6 12:11:20s -0:11:20 - -Rule sol89 1989 only - Mar 7 12:11:05s -0:11:05 - -Rule sol89 1989 only - Mar 8 12:10:50s -0:10:50 - -Rule sol89 1989 only - Mar 9 12:10:35s -0:10:35 - -Rule sol89 1989 only - Mar 10 12:10:20s -0:10:20 - -Rule sol89 1989 only - Mar 11 12:10:05s -0:10:05 - -Rule sol89 1989 only - Mar 12 12:09:50s -0:09:50 - -Rule sol89 1989 only - Mar 13 12:09:30s -0:09:30 - -Rule sol89 1989 only - Mar 14 12:09:15s -0:09:15 - -Rule sol89 1989 only - Mar 15 12:09:00s -0:09:00 - -Rule sol89 1989 only - Mar 16 12:08:40s -0:08:40 - -Rule sol89 1989 only - Mar 17 12:08:25s -0:08:25 - -Rule sol89 1989 only - Mar 18 12:08:05s -0:08:05 - -Rule sol89 1989 only - Mar 19 12:07:50s -0:07:50 - -Rule sol89 1989 only - Mar 20 12:07:30s -0:07:30 - -Rule sol89 1989 only - Mar 21 12:07:15s -0:07:15 - -Rule sol89 1989 only - Mar 22 12:06:55s -0:06:55 - -Rule sol89 1989 only - Mar 23 12:06:35s -0:06:35 - -Rule sol89 1989 only - Mar 24 12:06:20s -0:06:20 - -Rule sol89 1989 only - Mar 25 12:06:00s -0:06:00 - -Rule sol89 1989 only - Mar 26 12:05:40s -0:05:40 - -Rule sol89 1989 only - Mar 27 12:05:25s -0:05:25 - -Rule sol89 1989 only - Mar 28 12:05:05s -0:05:05 - -Rule sol89 1989 only - Mar 29 12:04:50s -0:04:50 - -Rule sol89 1989 only - Mar 30 12:04:30s -0:04:30 - -Rule sol89 1989 only - Mar 31 12:04:10s -0:04:10 - -Rule sol89 1989 only - Apr 1 12:03:55s -0:03:55 - -Rule sol89 1989 only - Apr 2 12:03:35s -0:03:35 - -Rule sol89 1989 only - Apr 3 12:03:20s -0:03:20 - -Rule sol89 1989 only - Apr 4 12:03:00s -0:03:00 - -Rule sol89 1989 only - Apr 5 12:02:45s -0:02:45 - -Rule sol89 1989 only - Apr 6 12:02:25s -0:02:25 - -Rule sol89 1989 only - Apr 7 12:02:10s -0:02:10 - -Rule sol89 1989 only - Apr 8 12:01:50s -0:01:50 - -Rule sol89 1989 only - Apr 9 12:01:35s -0:01:35 - -Rule sol89 1989 only - Apr 10 12:01:20s -0:01:20 - -Rule sol89 1989 only - Apr 11 12:01:05s -0:01:05 - -Rule sol89 1989 only - Apr 12 12:00:50s -0:00:50 - -Rule sol89 1989 only - Apr 13 12:00:35s -0:00:35 - -Rule sol89 1989 only - Apr 14 12:00:20s -0:00:20 - -Rule sol89 1989 only - Apr 15 12:00:05s -0:00:05 - -Rule sol89 1989 only - Apr 16 11:59:50s 0:00:10 - -Rule sol89 1989 only - Apr 17 11:59:35s 0:00:25 - -Rule sol89 1989 only - Apr 18 11:59:20s 0:00:40 - -Rule sol89 1989 only - Apr 19 11:59:10s 0:00:50 - -Rule sol89 1989 only - Apr 20 11:58:55s 0:01:05 - -Rule sol89 1989 only - Apr 21 11:58:45s 0:01:15 - -Rule sol89 1989 only - Apr 22 11:58:30s 0:01:30 - -Rule sol89 1989 only - Apr 23 11:58:20s 0:01:40 - -Rule sol89 1989 only - Apr 24 11:58:10s 0:01:50 - -Rule sol89 1989 only - Apr 25 11:58:00s 0:02:00 - -Rule sol89 1989 only - Apr 26 11:57:50s 0:02:10 - -Rule sol89 1989 only - Apr 27 11:57:40s 0:02:20 - -Rule sol89 1989 only - Apr 28 11:57:30s 0:02:30 - -Rule sol89 1989 only - Apr 29 11:57:20s 0:02:40 - -Rule sol89 1989 only - Apr 30 11:57:15s 0:02:45 - -Rule sol89 1989 only - May 1 11:57:05s 0:02:55 - -Rule sol89 1989 only - May 2 11:57:00s 0:03:00 - -Rule sol89 1989 only - May 3 11:56:50s 0:03:10 - -Rule sol89 1989 only - May 4 11:56:45s 0:03:15 - -Rule sol89 1989 only - May 5 11:56:40s 0:03:20 - -Rule sol89 1989 only - May 6 11:56:35s 0:03:25 - -Rule sol89 1989 only - May 7 11:56:30s 0:03:30 - -Rule sol89 1989 only - May 8 11:56:30s 0:03:30 - -Rule sol89 1989 only - May 9 11:56:25s 0:03:35 - -Rule sol89 1989 only - May 10 11:56:25s 0:03:35 - -Rule sol89 1989 only - May 11 11:56:20s 0:03:40 - -Rule sol89 1989 only - May 12 11:56:20s 0:03:40 - -Rule sol89 1989 only - May 13 11:56:20s 0:03:40 - -Rule sol89 1989 only - May 14 11:56:20s 0:03:40 - -Rule sol89 1989 only - May 15 11:56:20s 0:03:40 - -Rule sol89 1989 only - May 16 11:56:20s 0:03:40 - -Rule sol89 1989 only - May 17 11:56:20s 0:03:40 - -Rule sol89 1989 only - May 18 11:56:25s 0:03:35 - -Rule sol89 1989 only - May 19 11:56:25s 0:03:35 - -Rule sol89 1989 only - May 20 11:56:30s 0:03:30 - -Rule sol89 1989 only - May 21 11:56:35s 0:03:25 - -Rule sol89 1989 only - May 22 11:56:35s 0:03:25 - -Rule sol89 1989 only - May 23 11:56:40s 0:03:20 - -Rule sol89 1989 only - May 24 11:56:45s 0:03:15 - -Rule sol89 1989 only - May 25 11:56:55s 0:03:05 - -Rule sol89 1989 only - May 26 11:57:00s 0:03:00 - -Rule sol89 1989 only - May 27 11:57:05s 0:02:55 - -Rule sol89 1989 only - May 28 11:57:15s 0:02:45 - -Rule sol89 1989 only - May 29 11:57:20s 0:02:40 - -Rule sol89 1989 only - May 30 11:57:30s 0:02:30 - -Rule sol89 1989 only - May 31 11:57:35s 0:02:25 - -Rule sol89 1989 only - Jun 1 11:57:45s 0:02:15 - -Rule sol89 1989 only - Jun 2 11:57:55s 0:02:05 - -Rule sol89 1989 only - Jun 3 11:58:05s 0:01:55 - -Rule sol89 1989 only - Jun 4 11:58:15s 0:01:45 - -Rule sol89 1989 only - Jun 5 11:58:25s 0:01:35 - -Rule sol89 1989 only - Jun 6 11:58:35s 0:01:25 - -Rule sol89 1989 only - Jun 7 11:58:45s 0:01:15 - -Rule sol89 1989 only - Jun 8 11:59:00s 0:01:00 - -Rule sol89 1989 only - Jun 9 11:59:10s 0:00:50 - -Rule sol89 1989 only - Jun 10 11:59:20s 0:00:40 - -Rule sol89 1989 only - Jun 11 11:59:35s 0:00:25 - -Rule sol89 1989 only - Jun 12 11:59:45s 0:00:15 - -Rule sol89 1989 only - Jun 13 12:00:00s 0:00:00 - -Rule sol89 1989 only - Jun 14 12:00:10s -0:00:10 - -Rule sol89 1989 only - Jun 15 12:00:25s -0:00:25 - -Rule sol89 1989 only - Jun 16 12:00:35s -0:00:35 - -Rule sol89 1989 only - Jun 17 12:00:50s -0:00:50 - -Rule sol89 1989 only - Jun 18 12:01:05s -0:01:05 - -Rule sol89 1989 only - Jun 19 12:01:15s -0:01:15 - -Rule sol89 1989 only - Jun 20 12:01:30s -0:01:30 - -Rule sol89 1989 only - Jun 21 12:01:40s -0:01:40 - -Rule sol89 1989 only - Jun 22 12:01:55s -0:01:55 - -Rule sol89 1989 only - Jun 23 12:02:10s -0:02:10 - -Rule sol89 1989 only - Jun 24 12:02:20s -0:02:20 - -Rule sol89 1989 only - Jun 25 12:02:35s -0:02:35 - -Rule sol89 1989 only - Jun 26 12:02:45s -0:02:45 - -Rule sol89 1989 only - Jun 27 12:03:00s -0:03:00 - -Rule sol89 1989 only - Jun 28 12:03:10s -0:03:10 - -Rule sol89 1989 only - Jun 29 12:03:25s -0:03:25 - -Rule sol89 1989 only - Jun 30 12:03:35s -0:03:35 - -Rule sol89 1989 only - Jul 1 12:03:45s -0:03:45 - -Rule sol89 1989 only - Jul 2 12:04:00s -0:04:00 - -Rule sol89 1989 only - Jul 3 12:04:10s -0:04:10 - -Rule sol89 1989 only - Jul 4 12:04:20s -0:04:20 - -Rule sol89 1989 only - Jul 5 12:04:30s -0:04:30 - -Rule sol89 1989 only - Jul 6 12:04:40s -0:04:40 - -Rule sol89 1989 only - Jul 7 12:04:50s -0:04:50 - -Rule sol89 1989 only - Jul 8 12:05:00s -0:05:00 - -Rule sol89 1989 only - Jul 9 12:05:10s -0:05:10 - -Rule sol89 1989 only - Jul 10 12:05:20s -0:05:20 - -Rule sol89 1989 only - Jul 11 12:05:25s -0:05:25 - -Rule sol89 1989 only - Jul 12 12:05:35s -0:05:35 - -Rule sol89 1989 only - Jul 13 12:05:40s -0:05:40 - -Rule sol89 1989 only - Jul 14 12:05:50s -0:05:50 - -Rule sol89 1989 only - Jul 15 12:05:55s -0:05:55 - -Rule sol89 1989 only - Jul 16 12:06:00s -0:06:00 - -Rule sol89 1989 only - Jul 17 12:06:05s -0:06:05 - -Rule sol89 1989 only - Jul 18 12:06:10s -0:06:10 - -Rule sol89 1989 only - Jul 19 12:06:15s -0:06:15 - -Rule sol89 1989 only - Jul 20 12:06:20s -0:06:20 - -Rule sol89 1989 only - Jul 21 12:06:20s -0:06:20 - -Rule sol89 1989 only - Jul 22 12:06:25s -0:06:25 - -Rule sol89 1989 only - Jul 23 12:06:25s -0:06:25 - -Rule sol89 1989 only - Jul 24 12:06:30s -0:06:30 - -Rule sol89 1989 only - Jul 25 12:06:30s -0:06:30 - -Rule sol89 1989 only - Jul 26 12:06:30s -0:06:30 - -Rule sol89 1989 only - Jul 27 12:06:30s -0:06:30 - -Rule sol89 1989 only - Jul 28 12:06:30s -0:06:30 - -Rule sol89 1989 only - Jul 29 12:06:25s -0:06:25 - -Rule sol89 1989 only - Jul 30 12:06:25s -0:06:25 - -Rule sol89 1989 only - Jul 31 12:06:20s -0:06:20 - -Rule sol89 1989 only - Aug 1 12:06:20s -0:06:20 - -Rule sol89 1989 only - Aug 2 12:06:15s -0:06:15 - -Rule sol89 1989 only - Aug 3 12:06:10s -0:06:10 - -Rule sol89 1989 only - Aug 4 12:06:05s -0:06:05 - -Rule sol89 1989 only - Aug 5 12:06:00s -0:06:00 - -Rule sol89 1989 only - Aug 6 12:05:50s -0:05:50 - -Rule sol89 1989 only - Aug 7 12:05:45s -0:05:45 - -Rule sol89 1989 only - Aug 8 12:05:35s -0:05:35 - -Rule sol89 1989 only - Aug 9 12:05:30s -0:05:30 - -Rule sol89 1989 only - Aug 10 12:05:20s -0:05:20 - -Rule sol89 1989 only - Aug 11 12:05:10s -0:05:10 - -Rule sol89 1989 only - Aug 12 12:05:00s -0:05:00 - -Rule sol89 1989 only - Aug 13 12:04:50s -0:04:50 - -Rule sol89 1989 only - Aug 14 12:04:40s -0:04:40 - -Rule sol89 1989 only - Aug 15 12:04:30s -0:04:30 - -Rule sol89 1989 only - Aug 16 12:04:15s -0:04:15 - -Rule sol89 1989 only - Aug 17 12:04:05s -0:04:05 - -Rule sol89 1989 only - Aug 18 12:03:50s -0:03:50 - -Rule sol89 1989 only - Aug 19 12:03:35s -0:03:35 - -Rule sol89 1989 only - Aug 20 12:03:25s -0:03:25 - -Rule sol89 1989 only - Aug 21 12:03:10s -0:03:10 - -Rule sol89 1989 only - Aug 22 12:02:55s -0:02:55 - -Rule sol89 1989 only - Aug 23 12:02:40s -0:02:40 - -Rule sol89 1989 only - Aug 24 12:02:20s -0:02:20 - -Rule sol89 1989 only - Aug 25 12:02:05s -0:02:05 - -Rule sol89 1989 only - Aug 26 12:01:50s -0:01:50 - -Rule sol89 1989 only - Aug 27 12:01:30s -0:01:30 - -Rule sol89 1989 only - Aug 28 12:01:15s -0:01:15 - -Rule sol89 1989 only - Aug 29 12:00:55s -0:00:55 - -Rule sol89 1989 only - Aug 30 12:00:40s -0:00:40 - -Rule sol89 1989 only - Aug 31 12:00:20s -0:00:20 - -Rule sol89 1989 only - Sep 1 12:00:00s 0:00:00 - -Rule sol89 1989 only - Sep 2 11:59:45s 0:00:15 - -Rule sol89 1989 only - Sep 3 11:59:25s 0:00:35 - -Rule sol89 1989 only - Sep 4 11:59:05s 0:00:55 - -Rule sol89 1989 only - Sep 5 11:58:45s 0:01:15 - -Rule sol89 1989 only - Sep 6 11:58:25s 0:01:35 - -Rule sol89 1989 only - Sep 7 11:58:05s 0:01:55 - -Rule sol89 1989 only - Sep 8 11:57:45s 0:02:15 - -Rule sol89 1989 only - Sep 9 11:57:20s 0:02:40 - -Rule sol89 1989 only - Sep 10 11:57:00s 0:03:00 - -Rule sol89 1989 only - Sep 11 11:56:40s 0:03:20 - -Rule sol89 1989 only - Sep 12 11:56:20s 0:03:40 - -Rule sol89 1989 only - Sep 13 11:56:00s 0:04:00 - -Rule sol89 1989 only - Sep 14 11:55:35s 0:04:25 - -Rule sol89 1989 only - Sep 15 11:55:15s 0:04:45 - -Rule sol89 1989 only - Sep 16 11:54:55s 0:05:05 - -Rule sol89 1989 only - Sep 17 11:54:35s 0:05:25 - -Rule sol89 1989 only - Sep 18 11:54:10s 0:05:50 - -Rule sol89 1989 only - Sep 19 11:53:50s 0:06:10 - -Rule sol89 1989 only - Sep 20 11:53:30s 0:06:30 - -Rule sol89 1989 only - Sep 21 11:53:10s 0:06:50 - -Rule sol89 1989 only - Sep 22 11:52:45s 0:07:15 - -Rule sol89 1989 only - Sep 23 11:52:25s 0:07:35 - -Rule sol89 1989 only - Sep 24 11:52:05s 0:07:55 - -Rule sol89 1989 only - Sep 25 11:51:45s 0:08:15 - -Rule sol89 1989 only - Sep 26 11:51:25s 0:08:35 - -Rule sol89 1989 only - Sep 27 11:51:05s 0:08:55 - -Rule sol89 1989 only - Sep 28 11:50:40s 0:09:20 - -Rule sol89 1989 only - Sep 29 11:50:20s 0:09:40 - -Rule sol89 1989 only - Sep 30 11:50:00s 0:10:00 - -Rule sol89 1989 only - Oct 1 11:49:45s 0:10:15 - -Rule sol89 1989 only - Oct 2 11:49:25s 0:10:35 - -Rule sol89 1989 only - Oct 3 11:49:05s 0:10:55 - -Rule sol89 1989 only - Oct 4 11:48:45s 0:11:15 - -Rule sol89 1989 only - Oct 5 11:48:30s 0:11:30 - -Rule sol89 1989 only - Oct 6 11:48:10s 0:11:50 - -Rule sol89 1989 only - Oct 7 11:47:50s 0:12:10 - -Rule sol89 1989 only - Oct 8 11:47:35s 0:12:25 - -Rule sol89 1989 only - Oct 9 11:47:20s 0:12:40 - -Rule sol89 1989 only - Oct 10 11:47:00s 0:13:00 - -Rule sol89 1989 only - Oct 11 11:46:45s 0:13:15 - -Rule sol89 1989 only - Oct 12 11:46:30s 0:13:30 - -Rule sol89 1989 only - Oct 13 11:46:15s 0:13:45 - -Rule sol89 1989 only - Oct 14 11:46:00s 0:14:00 - -Rule sol89 1989 only - Oct 15 11:45:50s 0:14:10 - -Rule sol89 1989 only - Oct 16 11:45:35s 0:14:25 - -Rule sol89 1989 only - Oct 17 11:45:20s 0:14:40 - -Rule sol89 1989 only - Oct 18 11:45:10s 0:14:50 - -Rule sol89 1989 only - Oct 19 11:45:00s 0:15:00 - -Rule sol89 1989 only - Oct 20 11:44:50s 0:15:10 - -Rule sol89 1989 only - Oct 21 11:44:40s 0:15:20 - -Rule sol89 1989 only - Oct 22 11:44:30s 0:15:30 - -Rule sol89 1989 only - Oct 23 11:44:20s 0:15:40 - -Rule sol89 1989 only - Oct 24 11:44:10s 0:15:50 - -Rule sol89 1989 only - Oct 25 11:44:05s 0:15:55 - -Rule sol89 1989 only - Oct 26 11:44:00s 0:16:00 - -Rule sol89 1989 only - Oct 27 11:43:50s 0:16:10 - -Rule sol89 1989 only - Oct 28 11:43:45s 0:16:15 - -Rule sol89 1989 only - Oct 29 11:43:40s 0:16:20 - -Rule sol89 1989 only - Oct 30 11:43:40s 0:16:20 - -Rule sol89 1989 only - Oct 31 11:43:35s 0:16:25 - -Rule sol89 1989 only - Nov 1 11:43:35s 0:16:25 - -Rule sol89 1989 only - Nov 2 11:43:35s 0:16:25 - -Rule sol89 1989 only - Nov 3 11:43:30s 0:16:30 - -Rule sol89 1989 only - Nov 4 11:43:35s 0:16:25 - -Rule sol89 1989 only - Nov 5 11:43:35s 0:16:25 - -Rule sol89 1989 only - Nov 6 11:43:35s 0:16:25 - -Rule sol89 1989 only - Nov 7 11:43:40s 0:16:20 - -Rule sol89 1989 only - Nov 8 11:43:45s 0:16:15 - -Rule sol89 1989 only - Nov 9 11:43:50s 0:16:10 - -Rule sol89 1989 only - Nov 10 11:43:55s 0:16:05 - -Rule sol89 1989 only - Nov 11 11:44:00s 0:16:00 - -Rule sol89 1989 only - Nov 12 11:44:05s 0:15:55 - -Rule sol89 1989 only - Nov 13 11:44:15s 0:15:45 - -Rule sol89 1989 only - Nov 14 11:44:25s 0:15:35 - -Rule sol89 1989 only - Nov 15 11:44:35s 0:15:25 - -Rule sol89 1989 only - Nov 16 11:44:45s 0:15:15 - -Rule sol89 1989 only - Nov 17 11:44:55s 0:15:05 - -Rule sol89 1989 only - Nov 18 11:45:10s 0:14:50 - -Rule sol89 1989 only - Nov 19 11:45:20s 0:14:40 - -Rule sol89 1989 only - Nov 20 11:45:35s 0:14:25 - -Rule sol89 1989 only - Nov 21 11:45:50s 0:14:10 - -Rule sol89 1989 only - Nov 22 11:46:05s 0:13:55 - -Rule sol89 1989 only - Nov 23 11:46:25s 0:13:35 - -Rule sol89 1989 only - Nov 24 11:46:40s 0:13:20 - -Rule sol89 1989 only - Nov 25 11:47:00s 0:13:00 - -Rule sol89 1989 only - Nov 26 11:47:20s 0:12:40 - -Rule sol89 1989 only - Nov 27 11:47:35s 0:12:25 - -Rule sol89 1989 only - Nov 28 11:47:55s 0:12:05 - -Rule sol89 1989 only - Nov 29 11:48:20s 0:11:40 - -Rule sol89 1989 only - Nov 30 11:48:40s 0:11:20 - -Rule sol89 1989 only - Dec 1 11:49:00s 0:11:00 - -Rule sol89 1989 only - Dec 2 11:49:25s 0:10:35 - -Rule sol89 1989 only - Dec 3 11:49:50s 0:10:10 - -Rule sol89 1989 only - Dec 4 11:50:15s 0:09:45 - -Rule sol89 1989 only - Dec 5 11:50:35s 0:09:25 - -Rule sol89 1989 only - Dec 6 11:51:00s 0:09:00 - -Rule sol89 1989 only - Dec 7 11:51:30s 0:08:30 - -Rule sol89 1989 only - Dec 8 11:51:55s 0:08:05 - -Rule sol89 1989 only - Dec 9 11:52:20s 0:07:40 - -Rule sol89 1989 only - Dec 10 11:52:50s 0:07:10 - -Rule sol89 1989 only - Dec 11 11:53:15s 0:06:45 - -Rule sol89 1989 only - Dec 12 11:53:45s 0:06:15 - -Rule sol89 1989 only - Dec 13 11:54:10s 0:05:50 - -Rule sol89 1989 only - Dec 14 11:54:40s 0:05:20 - -Rule sol89 1989 only - Dec 15 11:55:10s 0:04:50 - -Rule sol89 1989 only - Dec 16 11:55:40s 0:04:20 - -Rule sol89 1989 only - Dec 17 11:56:05s 0:03:55 - -Rule sol89 1989 only - Dec 18 11:56:35s 0:03:25 - -Rule sol89 1989 only - Dec 19 11:57:05s 0:02:55 - -Rule sol89 1989 only - Dec 20 11:57:35s 0:02:25 - -Rule sol89 1989 only - Dec 21 11:58:05s 0:01:55 - -Rule sol89 1989 only - Dec 22 11:58:35s 0:01:25 - -Rule sol89 1989 only - Dec 23 11:59:05s 0:00:55 - -Rule sol89 1989 only - Dec 24 11:59:35s 0:00:25 - -Rule sol89 1989 only - Dec 25 12:00:05s -0:00:05 - -Rule sol89 1989 only - Dec 26 12:00:35s -0:00:35 - -Rule sol89 1989 only - Dec 27 12:01:05s -0:01:05 - -Rule sol89 1989 only - Dec 28 12:01:35s -0:01:35 - -Rule sol89 1989 only - Dec 29 12:02:00s -0:02:00 - -Rule sol89 1989 only - Dec 30 12:02:30s -0:02:30 - -Rule sol89 1989 only - Dec 31 12:03:00s -0:03:00 - - -# Riyadh is at about 46 degrees 46 minutes East: 3 hrs, 7 mins, 4 secs -# Before and after 1989, we'll operate on local mean solar time. - -# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] -Zone Mideast/Riyadh89 3:07:04 - ?? 1989 - 3:07:04 sol89 ?? 1990 - 3:07:04 - ?? diff --git a/share/zoneinfo/datfiles/southamerica b/share/zoneinfo/datfiles/southamerica deleted file mode 100644 index abab105..0000000 --- a/share/zoneinfo/datfiles/southamerica +++ /dev/null @@ -1,103 +0,0 @@ -# @(#)southamerica 4.3 - -# From Guy Harris: -# From Official Airline Guide - Worldwide Edition (1987). Countries not -# listed here do not observe DST, according to the OAG. Time zone names -# are pure inventions, and none are supplied for countries not observing -# DST; updates from natives would be appreciated. The times that DST -# starts and ends are based on the assumption that they switch a 2AM just -# as everybody else does. - -############################################################################### - -# Brazil - -# From Guy Harris: -# The OAG lists October 25, 1987 and February 12, 1988 as the starting and -# ending dates, giving them as "estimated date(s) based on previous year". We -# infer a rule here from one example, always a dangerous practice.... Yes, -# they really do switch on Saturday, according to the OAG. -# "Brazil/Acre" is for the Territory of Acre; "Brazil/DeNoronha" is for -# Fernando De Noronha. - -# From Bob Devine (January 28, 1988): -# The only information I found is that there was no DST up to 1985. -# But there was some before 1952! - -# From U. S. Naval Observatory (January 16, 1989): -# BRAZIL WEST 5 H BEHIND UTC TERRITORY OF ACRE -# BRAZIL WEST 4 H BEHIND UTC ACRE OCT 23, '88-FEB 11, -# BRAZIL '89 (ESTIMATED) -# BRAZIL CENTRAL 4 H BEHIND UTC MANAUS -# BRAZIL CENTRAL 3 H BEHIND UTC MANAUS OCT 23, '88-FEB 11, -# BRAZIL CENTRAL '89 (ESTIMATED) -# BRAZIL EAST 3 H BEHIND UTC COASTAL STATES, RIO, SAO -# BRAZIL EAST PAULO, BRASILIA -# BRAZIL EAST 2 H BEHIND UTC COASTAL STATES, RIO, SAO -# BRAZIL PAULO, BRASILIA OCT 23, -# BRAZIL '88-FEB 11, '89 -# BRAZIL (ESTIMATED) -# BRAZIL 2 H BEHIND UTC ATLANTIC ISLANDS, FERNANDO -# BRAZIL DE NORONHA -# BRAZIL 1 H BEHIND UTC OCT 23, '88-FEB 11, '89 -# BRAZIL (ESTIMATED) -# BRAZIL 3 H BEHIND UTC FOR MOST MAJOR AIRPORTS. - -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Brazil 1987 max - Feb Sat<=14 2:00 0 S -Rule Brazil 1987 max - Oct Sat<=28 2:00 1:00 D - -# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] -Zone Brazil/East -3:00 Brazil E%sT -Zone Brazil/West -4:00 Brazil W%sT -Zone Brazil/Acre -5:00 Brazil A%sT -Zone Brazil/DeNoronha -2:00 Brazil F%sT - -############################################################################### - -# Chile - -# From Guy Harris: -# The OAG lists October 11, 1987 and March 12, 1988 as the starting and -# ending dates, giving them as "estimated date(s) based on previous year." - -# From Bob Devine (January 28, 1988): -# Chile has had 2nd Sunday in October to 2nd Sunday in March DST since 1977. -# Switch is at midnight. OAG is right. - -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Chile 1977 max - Oct Sun>=8 0:00 1:00 D -Rule Chile 1978 max - Mar Sun>=8 0:00 0 S - -# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] -Zone Chile/Continental -4:00 Chile C%sT -Zone Chile/EasterIsland -6:00 Chile E%sT - -############################################################################### - -# Paraguay - -# From Bob Devine (January 28, 1988): -# Paraguay: First day in October to last in March. Midnight switch?? -# Since 1980. - -# From U. S. Naval Observatory (January 19, 1989): -# PARAGUAY 4 H BEHIND UTC -# PARAGUAY 3 H BEHIND UTC OCT 1, '88-MAR 31, '89 - -# From Arthur David Olson (January 21, 1989): -# Still don't know time of day when switch occurs. Punt. - -############################################################################### - -# Argentina - -# From Bob Devine (January 28, 1988): -# Argentina: first Sunday in October to first Sunday in April since 1976. -# Double Summer time from 1969 to 1974. Switches at midnight. - -# From U. S. Naval Observatory (January 19, 19889): -# ARGENTINA 3 H BEHIND UTC - -# From Arthur David Olson (January 21, 1989): -# OAG, USNO and Bob have different data. Punt. diff --git a/share/zoneinfo/datfiles/systemv b/share/zoneinfo/datfiles/systemv deleted file mode 100644 index 8dc7bed..0000000 --- a/share/zoneinfo/datfiles/systemv +++ /dev/null @@ -1,35 +0,0 @@ -# @(#)systemv 4.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) -# -# Be sure to compile this *without* leap second correction for true conformance. - -# 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 diff --git a/share/zoneinfo/datfiles/usno1988 b/share/zoneinfo/datfiles/usno1988 deleted file mode 100644 index 12d14ce..0000000 --- a/share/zoneinfo/datfiles/usno1988 +++ /dev/null @@ -1,111 +0,0 @@ -# @(#)usno1988 1.1 -# -# From Arthur David Olson (January 19, 1989): -# -# Here's some United States Naval Observatory time zone data from -# February 1988. It's here mostly to convince you that the USNO has indeed -# been updating its files (see its 1989 data elsewhere). -# -ANDORRA 1 H AHEAD OF UTC -ARGENTINA 3 H BEHIND UTC -BRASIL WEST 5 H BEHIND UTC (CRUZEIRO DO SUL) -BRASIL CENTRAL 4 H BEHIND UTC (MANAUS) -BRASIL EAST 3 H BEHIND UTC COASTAL STATES, RIO, SP, BRASILIA -BRASIL 2 H BEHIND UTC ATLANTIC ISLANDS -BRAZIL 5 H BEHIND UTC WEST (CRUZEIRO DO SUL) -BRAZIL 4 H BEHIND UTC CENTRAL (MANAUS) -BRAZIL 3 H BEHIND UTC COASTAL STATES, RIO, SP, BRASILIA -BRAZIL 3 H BEHIND UTC FOR MOST MAJOR AIRPORTS. -BRAZIL 2 H BEHIND UTC ATLANTIC ISLANDS -BULGARIA 2 H AHEAD OF UTC WINTER -BULGARIA 3 H AHEAD OF UTC SUMMER MAR31 - SEP 85, 0100 LOCAL -CHINA 8 H AHEAD OF UTC; ALL OF CHINA, INCL TAIWAN -CUBA 5 H BEHIND UTC IN WINTER -CUBA 4 H BEHIND UTC MAY 8 - OCT 8 -CYPRUS 2 H AHEAD UTC IN WINTER -CYPRUS 3 H AHEAD UTC MAR 25 - SEP 30 -DENMARK 1 H AHEAD UTC IN WINTER -DENMARK 2 H AHEAD UTC MAR 31 - SEP 30 , 0200 LOCAL -DENMK. FAEROE IS 1 H AHEAD UTC MAR 31 - SEP 30 , 0200 LOCAL -EGYPT 2 H AHEAD UTC -EGYPT 3 H AHEAD UTC SUMMER (AFTER RAMADAN) -ENGLAND ON UTC IN WINTER; WALES, SCOTLAND, N.I., CH.IS. -ENGLAND 1 H AHEAD OF UTC; SUMMER TIL 28 OCT 0200 LOCAL -FINLAND 2 H AHEAD OF UTC IN WINTER -FINLAND 3 H AHEAD OF UTC MAR 25 - SEP 30 -FRANCE 1 H AHEAD OF UTC IN WINTER -FRANCE 2 H AHEAD OF UTC MAR 31 - SEP 30 , 0100 LOCAL -GREECE 2 H AHEAD OF UTC IN WINTER -GREECE 3 H AHEAD OF UTC IN SUMMER EFF. 31MAR85 02/03 LOCAL -GREECE 3 H AHEAD OF UTC MAR 25 - SEP 30 -GREENLAND 4 H BEHIND UTC IN THULE AIRBASE YEAR ROUND -GREENLAND 3 H BEHIND UTC IN WINTER AT SONDRESTROM -GREENLAND 2 H BEHIND UTC 30 MAR - 30 SEP 2200 LOCAL AT -"- -GREENLAND 2 H BEHIND UTC AROUND SCORESBY SUND -ICELAND ON UTC -IRAN 3.5H AHEAD OF UTC -IRELAND ON UTC IN WINTER -IRELAND 1 H AHEAD OF UTC MAR 31 - OCT 23 0200 LOCAL -ITALY 1 H AHEAD OF UTC IN WINTER -ITALY 2 H AHEAD OF UTC MAR 31 - SEP 30, 0030 LOCAL -JAMAICA 5 H BEHIND UTC IN WINTER -JAMAICA 4 H BEHIND UTC APR 29 - OCT 29 -LIBYA 2 H AHEAD OF UTC -MEXICO BAJA CAL N 8 H BEHIND UTC IN WINTER; NORTH BAJA CAL, TIJUANA -MEXICO BAJA CAL N 7 H BEHIND UTC APR 29 - OCT 29 -MEXICO BAJA CAL S 7 H BEHIND UTC ALL YEAR; MAZATLAN -MEXICO CENTRAL 6 H BEHIND UTC ALL YEAR; MEXICO CITY -MONACO 1 H AHEAD UTC IN WINTER -MONACO 2 H AHEAD UTC MAR 25 - SEP30 -PARAGUAY 4 H BEHIND UTC IN WINTER -PARAGUAY 3 H BEHIND UTC SEP 30 - MAR 30 -POLAND 1 H AHEAD OF UTC IN WINTER -POLAND 2 H AHEAD OF UTC MAR 24 - SEP 0200 LOCAL -PORTUGAL ON UTC IN WINTER -PORTUGAL 1 H AHEAD OF UTC IN SUMMER MAR 31 - SEP 29 0100 LOCAL -PORTUGAL AZORES 1 H BEHIND UTC IN WINTER -PORTUGAL AZORES ON UTC IN SUMMER MAR 31 - SEP 29 -PORTUGAL MADEIRA ON UTC ALL YEAR; -ROMANIA 2 H AHEAD OF UTC IN WINTER -ROMANIA 3 H AHEAD OF UTC APR 3 - SEP 24 -SCOTLAND SEE ENGLAND -SWITZERLAND 1 H AHEAD OF UTC IN WINTER -SWITZERLAND 2 H AHEAD OF UTC MAR 31 - SEP 30 0200 LOCAL -TURKEY 3 H AHEAD OF UTC -USA EASTERN 5 H BEHIND UTC IN WINTER; NEW YORK, WASHINGTON -USA EASTERN 4 H BEHIND UTC APR 29 - OCT 29 -USA CENTRAL 6 H BEHIND UTC IN WINTER; CHICAGO, HOUSTON -USA CENTRAL 5 H BEHIND UTC APR 29 - OCT 29 -USA MOUNTAIN 7 H BEHIND UTC IN WINTER; DENVER -USA MOUNTAIN 6 H BEHIND UTC APR 29 - OCT 29 -USA PACIFIC 8 H BEHIND UTC IN WINTER; L.A., SAN FRANCISCO -USA PACIFIC 7 H BEHIND UTC APR 29 - OCT 29 -USA ALASKA STD 9 H BEHIND UTC IN WINTER; MOST OF ALASKA (AKST) -USA ALASKA STD 8 H BEHIND UTC APR 29 - OCT 29 (AKDT) -USA ALEUTIAN 10 H BEHIND UTC IN WINTER; ISLANDS WEST OF 170W -USA - " - 9 H BEHIND UTC APR 29 - OCT 29 -USA HAWAII 10 H BEHIND UTC ALL YEAR; -USA BERING 11 H BEHIND UTC ALL YEAR; SAMOA, MIDWAY -USSR WEST EUROP 3 H AHEAD OF UTC IN WINTER; LENINGRAD, MOSCOW -USSR WEST EUROP 4 H AHEAD OF UTC APR 1 - SEP 30 -USSR CENTRAL EUR 4 H AHEAD OF UTC IN WINTER; ROSTOV, BAKU -USSR CENTRAL EUR 5 H AHEAD OF UTC APR 1 - SEP 30 -USSR EAST EUROP 5 H AHEAD OF UTC IN WINTER; SVERDLOVSK -USSR EAST EUROP 6 H AHEAD OF UTC APR 1 - SEP 30 -USSR WEST SIBERIAN 6 H AHEAD OF UTC IN WINTER; TASHKENT, ALMA ATA -USSR WEST SIBERIAN 7 H AHEAD OF UTC APR 1 - SEP 30 -USSR WEST-CENTRAL 7 H AHEAD OF UTC IN WINTER; NOVOSIBIRSK -USSR WEST-CENTRAL 8 H AHEAD OF UTC APR 1 - SEP 30 -USSR WEST-CENTRAL 8 H AHEAD OF UTC IN WINTER; IRKUTSK -USSR WEST-CENTRAL 9 H AHEAD OF UTC APR 1 - SEP 30 -USSR CENTRAL SIB 9 H AHEAD OF UTC IN WINTER; YAKUTSK -USSR CENTRAL SIB 10 H AHEAD OF UTC APR 1 - SEP 30 -USSR CENTRAL SIB 10 H AHEAD OF UTC IN WINTER; VLADIVOSTOK -USSR CENTRAL SIB 11 H AHEAD OF UTC APR 1 - SEP 30 -USSR EAST SIBERIA 11 H AHEAD OF UTC IN WINTER; MAGADAN -USSR EAST SIBERIA 12 H AHEAD OF UTC APR 1 - SEP 30 -USSR EAST SIBERIA 12 H AHEAD OF UTC IN WINTER; PETROPAVLOVSK -USSR EAST SIBERIA 13 H AHEAD OF UTC APR 1 - SEP 30 -USSR EAST SIBERIA 13 H AHEAD OF UTC IN WINTER; UELEN -USSR EAST SIBERIA 14 H AHEAD OF UTC APR 1 - SEP 30 -WALES SEE ENGLAND diff --git a/share/zoneinfo/datfiles/usno1989 b/share/zoneinfo/datfiles/usno1989 deleted file mode 100644 index 82cc386..0000000 --- a/share/zoneinfo/datfiles/usno1989 +++ /dev/null @@ -1,452 +0,0 @@ -# @(#)usno1989 1.3 -# -# From Arthur David Olson (January 19, 1989): -# -# Here's time zone information from the United States Naval Observatory; -# no corrections have been made, and there are some obvious challenges. -# The USNO warns: -# DUE TO FREQUENT CHANGES IN THE LOCAL LAWS GOVERNING DAYLIGHT -# SAVING TIME, WE CANNOT GUARANTEE THE ACCURACY OF THIS -# INFORMATION. PLEASE ALERT US TO ANY DISCREPANCY YOU MAY -# DISCOVER. -# -AFGHANISTAN 4.5H AHEAD OF UTC -ALBANIA 1 H AHEAD OF UTC -ALBANIA 2 H AHEAD OF UTC MAR 27 - SEP 24 -ALBANIA (ESTIMATED) -ALGERIA 1 H AHEAD OF UTC -AMERICAN SAMOA 11 H BEHIND UTC -ANDORRA 1 H AHEAD OF UTC -ANDORRA 2 H AHEAD OF UTC MAR 27 - SEP 24 -ANDORRA (ESTIMATED) -ANGOLA 1 H AHEAD OF UTC -ARGENTINA 3 H BEHIND UTC -ARUBA 4 H BEHIND UTC ALSO BONAIRE, CURACAO, -ARUBA ST.MAARTEN -AUSTRALIA WEST 8 H AHEAD OF UTC PERTH, EXMOUTH -AUSTRALIA N.T. 9.5H AHEAD OF UTC DARWIN NO ADVANCED TIME -AUSTRALIA N.T. IN SUMMER -AUSTRALIA SOUTH 9.5H AHEAD OF UTC ADELAIDE -AUSTRALIA INCLUDING BROKEN HILL, NSW -AUSTRALIA SOUTH 10.5H AHEAD OF UTC ADELAIDE OCT 30, '88-MAR -AUSTRALIA SOUTH 18, '89 INCLUDING BROKEN -AUSTRIALIA SOUTH HILL, NSW -AUSTRALIA QUEENL 10 H AHEAD OF UTC -AUSTRALIA NSW 10 H AHEAD OF UTC SYDNEY -AUSTRALIA NSW 11 H AHEAD OF UTC SYDNEY OCT 30, '88-MAR 18, -AUSTRALIA NSW '89 -AUSTRALIA TASM. 10 H AHEAD OF UTC HOBART -AUSTRALIA TASM. 11 H AHEAD OF UTC HOBART OCT 30, '88-MAR 18, -AUSTRALIA TASM. '89 -AUSTRIA 1 H AHEAD OF UTC -AUSTRIA 2 H AHEAD OF UTC MAR 27 - SEPT 24 -AZORES SEE PORTUGAL -BAHAMAS 5 H BEHIND UTC EXCLUDING TURKS AND CAICOS -BAHAMAS ISLANDS) -BAHAMAS 4 H BEHIND UTC APR 3 - OCT 29 (SAME -BAHAMAS EXCLUSION) -BAHRAIN 3 H AHEAD OF UTC -BANGLADESH 6 H AHEAD OF UTC -BARBADOS 4 H BEHIND UTC -BELGIUM 1 H AHEAD OF UTC -BELGIUM 2 H AHEAD OF UTC MAR 27 - SEP 24 -BELIZE 6 H BEHIND UTC -BENIN PEOPLES REP 1 H AHEAD OF UTC DAHOMEY -BERMUDA 4 H BEHIND UTC -BERMUDA 3 H BEHIND UTC APR 3 - OCT 29 -BHUTAN 6 H AHEAD OF UTC -BOLIVIA 4 H BEHIND UTC -BONAIRE 4 H BEHIND UTC ALSO ARUBA,CURACAO, -BONAIRE ST.MAARTEN, SABA -BOTSWANA 2 H AHEAD OF UTC -BRAZIL WEST 5 H BEHIND UTC TERRITORY OF ACRE -BRAZIL WEST 4 H BEHIND UTC ACRE OCT 23, '88-FEB 11, -BRAZIL '89 (ESTIMATED) -BRAZIL CENTRAL 4 H BEHIND UTC MANAUS -BRAZIL CENTRAL 3 H BEHIND UTC MANAUS OCT 23, '88-FEB 11, -BRAZIL CENTRAL '89 (ESTIMATED) -BRAZIL EAST 3 H BEHIND UTC COASTAL STATES, RIO, SAO -BRAZIL EAST PAULO, BRASILIA -BRAZIL EAST 2 H BEHIND UTC COASTAL STATES, RIO, SAO -BRAZIL PAULO, BRASILIA OCT 23, -BRAZIL '88-FEB 11, '89 -BRAZIL (ESTIMATED) -BRAZIL 2 H BEHIND UTC ATLANTIC ISLANDS, FERNANDO -BRAZIL DE NORONHA -BRAZIL 1 H BEHIND UTC OCT 23, '88-FEB 11, '89 -BRAZIL (ESTIMATED) -BRAZIL 3 H BEHIND UTC FOR MOST MAJOR AIRPORTS. -BRITISH VIRGIN I. 4 H BEHIND UTC -BRUNEI 8 H AHEAD OF UTC -BULGARIA 2 H AHEAD OF UTC -BULGARIA 3 H AHEAD OF UTC MAR 27 - SEP 24 -BURKINA FASO ON UTC -BURMA 6.5H AHEAD OF UTC -BURUNDI 2 H AHEAD OF UTC -CAMBODIA SEE KAMPUCHEA -CAMEROON 1 H AHEAD OF UTC -CANADA NEW FDL 3.5H BEHIND UTC ST.JOHN'S -CANADA NEW FDL 1.5H BEHIND UTC APR 3 - OCT 29 -CANADA ATLANTIC 4 H BEHIND UTC HALIFAX -CANADA ATLANTIC 3 H BEHIND UTC APR 3 - OCT 29 -CANADA EASTERN 5 H BEHIND UTC TORONTO, MONTREAL, OTTAWA -CANADA EASTERN 4 H BEHIND UTC APR 3 - OCT 29 -CANADA CENTRAL 6 H BEHIND UTC REGINA, WINNIPEG -CANADA CENTRAL 5 H BEHIND UTC APR 3 - OCT 29 -CANADA MOUNTAIN 7 H BEHIND UTC CALGARY, EDMONTON -CANADA MOUNTAIN 6 H BEHIND UTC APR 3 - OCT 29 -CANADA PACIFIC 8 H BEHIND UTC VANCOUVER -CANADA PACIFIC 7 H BEHIND UTC APR 3 - OCT 29 -CANADA YUKON SAME AS PACIFIC DAWSON -CAPE VERDE 1 H BEHIND UTC -CAYMAN ISLANDS 5 H BEHIND UTC -CAROLINE ISLAND 10 H AHEAD OF UTC EXCLUDING PONAPE IS., -CAROLINE ISLAND KUSAIE, AND PINGELAP -CENTRAL AFRICA 1 H AHEAD OF UTC -CEYLON 5.5H AHEAD OF UTC, SEE SRI LANKA -CHAD 1 H AHEAD OF UTC -CHANNEL ISLANDS SEE ENGLAND -CHILE 4 H BEHIND UTC CONTINENTAL -CHILE 3 H BEHIND UTC OCT 9, '88-MAR 11, '89 -CHILE 6 H BEHIND UTC EASTER ISLAND -CHILE 5 H BEHIND UTC OCT 9, '88-MAR 11, '89 -CHINA 8 H AHEAD OF UTC ALL OF CHINA, INCL TAIWAN -CHINA 9 H AHEAD OF UTC APR 17 - SEP 10 -COCOS (Keeling) I. 6.5H AHEAD OF UTC -COLOMBIA 5 H BEHIND UTC -COMOROS 3 H AHEAD OF UTC -CONGO 1 H AHEAD OF UTC -COOK ISLANDS 10 H BEHIND UTC -COOK ISLANDS 9.5H BEHIND UTC OCT 30, '88-MAR 24, '89 -COOK ISLANDS (ESTIMATED) -COSTA RICA 6 H BEHIND UTC -COTE D'IVOIRE ON UTC -CUBA 5 H BEHIND UTC -CUBA 4 H BEHIND UTC MAR 20 - OCT 8 -CURACAO 4 H BEHIND UTC ALSO BONAIRE, ARUBA, -CURACAO ST.MAARTEN -CYPRUS 2 H AHEAD OF UTC -CYPRUS 3 H AHEAD OF UTC MAR 27 - SEP 24 -CZECHOSLOVAKIA 1 H AHEAD OF UTC -CZECHOSLOVAKIA 2 H AHEAD OF UTC MAR 27 - SEP 24 -DENMARK 1 H AHEAD OF UTC -DENMARK 2 H AHEAD OF UTC MAR 27 - SEP 24 -DENMK. FAEROE IS 1 H AHEAD OF UTC MAR 27 - SEP 24 -DJIBOUTI 3 H AHEAD OF UTC -DOMINICA 4 H BEHIND UTC -DOMINICAN REP 4 H BEHIND UTC -ECUADOR 5 H BEHIND UTC CONTINENTAL -ECUADOR 6 H BEHIND UTC GALAPAGOS ISLANDS -EGYPT 2 H AHEAD OF UTC -EGYPT 3 H AHEAD OF UTC MAY 17 - SEP 30 (AFTER -EGYPT RAMADAN) -EL SALVADOR 6 H BEHIND UTC -ENGLAND ON UTC (WALES, SCOTLAND, N.I., -ENGLAND CH. IS.) -ENGLAND 1 H AHEAD OF UTC MAR 27 - OCT 22 -ENEZUELA 4 H BEHIND UTC -EQUITORIAL GUINEA 1 H AHEAD OF UTC -ETHIOPIA 3 H AHEAD OF UTC -FALKLAND ISLANDS 4 H BEHIND UTC -FALKLAND ISLANDS 3 H BEHIND UTC SEP 11, '88-APR 15, '89 -FALKLAND ISLANDS (ESTIMATED) -FAROE ISLAND ON UTC -FAROE ISLAND 1 H AHEAD OF UTC MAR 27 - SEP 24 -FIJI 12 H AHEAD OF UTC -FINLAND 2 H AHEAD OF UTC -FINLAND 3 H AHEAD OF UTC MAR 27 - SEP 24 -FRANCE 1 H AHEAD OF UTC -FRANCE 2 H AHEAD OF UTC MAR 27 - SEP 24 -FRENCH GUIANA 3 H BEHIND UTC -FRENCH POLYNESIA 9 H BEHIND UTC GAMBIER ISLAND -FRENCH POLYNESIA 9.5H BEHIND UTC MARQUESAS ISLANDS -FRENCH POLYNESIA 10 H BEHIND UTC SOCIETY ISLANDS, TUBUAI -FRENCH POLYNESIA ISLANDS, TUAMOTU ISLAND, -FRENCH POLYNESIA TAHITI -GABON 1 H AHEAD OF UTC -GAMBIA ON UTC -GERMANY ALL 1 H AHEAD OF UTC -GERMANY ALL 2 H AHEAD OF UTC MAR 27 - SEP 24 -GHANA ON UTC -GIBRALTAR 1 H AHEAD OF UTC -GIBRALTAR 2 H AHEAD OF UTC MAR 27 - SEP 24 -GREECE 2 H AHEAD OF UTC -GREECE 3 H AHEAD OF UTC MAR 27 - SEP 24 -GREENLAND 4 H BEHIND UTC THULE AIRBASE YEAR ROUND -GREENLAND 3 H BEHIND UTC ANGMAGSSALIK AND W. COAST -GREENLAND 2 H BEHIND UTC MAR 27 - SEP 24 -GREENLAND 1 H BEHIND UTC SCORESBYSUND -GREENLAND ON UTC MAR 27 - SEP 24 -GRENADA 4 H BEHIND UTC -GUADELOUPE 4 H BEHIND UTC ST. BARTHELEMY, NORTHERN -GUADELOUPE ST. MARTIN MARTINIQUE -GUAM 10 H AHEAD OF UTC -GUATEMALA 6 H BEHIND UTC -GUINEA ON UTC -GUINEA BISSAU ON UTC -GUINEA REPUBLIC ON UTC -GUINEA EQUATORIAL 1 H AHEAD OF UTC -GUYANA 3 H BEHIND UTC -HAITI 5 H BEHIND UTC -HAITI 4 H BEHIND UTC APR 3 - OCT 29 -HOLLAND SEE NETHERLANDS -HONDURAS 6 H BEHIND UTC -HONG KONG 8 H AHEAD OF UTC -HUNGARY 1 H AHEAD OF UTC -HUNGARY 2 H AHEAD OF UTC MAR 27 - SEP 24 -ICELAND ON UTC -INDIA 5.5H AHEAD OF UTC INCLUDING ANDAMAN ISLANDS -INDONESIA WEST 7 H AHEAD OF UTC SUMATRA, JAVA, BALI, -INDONESIA WEST JAKARTA -INDONESIA CENTRAL 8 H AHEAD OF UTC KALIMANTAN, SULAWESI -INDONESIA EAST 9 H AHEAD OF UTC IRIAN, BARAT -IRAN 3.5H AHEAD OF UTC -IRAQ 3 H AHEAD OF UTC -IRAQ 4 H AHEAD OF UTC APR 1 - SEP 30 -IRELAND ON UTC -IRELAND 1 H AHEAD OF UTC MAR 27 - OCT 22 -ISRAEL 2 H AHEAD OF UTC -ISRAEL 3 H AHEAD OF UTC APR 10 - SEP 3 -ITALY 1 H AHEAD OF UTC -ITALY 2 H AHEAD OF UTC MAR 27 - SEP 24 -IVORY COAST ON UTC -IWAN 8 H AHEAD OF UTC -JAMAICA 5 H BEHIND UTC -JAPAN 9 H AHEAD OF UTC -JOHNSTON ISLAND 10 H BEHIND UTC -JORDAN 2 H AHEAD OF UTC -JORDAN 3 H AHEAD OF UTC APR 1 - OCT 6 -KAMPUCHEA 7 H AHEAD OF UTC -KENYA 3 H AHEAD OF UTC -KIRIBATI, REP OF 12 H AHEAD OF UTC CANTON, ENDERBURY ISLANDS -KIRIBATI, REP OF 11 H AHEAD OF UTC CHRISTMAS ISLAND -KOREA 9 H AHEAD OF UTC -KOREA, REP OF 9 H AHEAD OF UTC -KOREA, REP OF 10 H AHEAD OF UTC MAY 8 - OCT 8 -KUWAIT 3 H AHEAD OF UTC -KUSAIE, PINGELAP 12 H AHEAD OF UTC INCLUDING MARSHALL IS., -KUSAIE, PINGELAP EXCLUDING KWAJALEIN) -KWAJALEIN 12 H BEHIND UTC -LAOS 7 H AHEAD OF UTC -LEBANON 2 H AHEAD OF UTC -LEBANON 3 H AHEAD OF UTC JUN 1 - OCT 31 -LEEWARD ISLANDS 4 H BEHIND UTC ANTIGUA, DOMINICA, -LEEWARD ISLANDS MONTSERRAT, ST. -LEEWARD ISLAANDS CHRISTOPHER, ST. KITTS, -LEEWARD ISLANDS NEVIS, ANGUILLA -LESOTHO 2 H AHEAD OF UTC -LIBERIA ON UTC -LIBYAN ARAB 1 H AHEAD OF UTC JAMAHIRIYA/LIBYA -LIBYAN ARAB 2 H AHEAD OF UTC APR 1 - SEP 30 JAMAHIRIYA/LIBYA -LIECHTENSTEIN 1 H AHEAD OF UTC -LIECHTENSTEIN 2 H AHEAD OF UTC MAR 27 - SEP 24 -LUXEMBOURG 1 H AHEAD OF UTC -LUXEMBOURG 2 H AHEAD OF UTC MAR 27 - SEP 24 -MACAO 8 H AHEAD OF UTC -MADAGASCAR 3 H AHEAD OF UTC -MADEIRA SEE PORTUGAL -MALAWI 2 H AHEAD OF UTC -MALAYSIA 8 H AHEAD OF UTC -MALDIVES 5 H AHEAD OF UTC -MALI ON UTC -MALTA 1 H AHEAD OF UTC -MALTA 2 H AHEAD OF UTC MAR 27 - SEP 24 -MARTINIQUE 4 H BEHIND UTC -MAURITANIA ON UTC -MAURITIUS 4 H AHEAD OF UTC -MARIANA ISLAND 10 H AHEAD OF UTC EXCLUDING GUAM -MEXICO BAJA CAL N 7 H BEHIND UTC BAJA CALIFORNIA SUR AND -MEXICO BAJA CAL N N. PACIFIC COAST (STATES -MEXICO BAJA CAL N OF SINALOA AND SONORA) -MEXICO BAJA CAL N 8 H BEHIND UTC ABOVE 28TH PARALLAL APR 3 -MEXICO BAJA CAL N - OCT 29 -MEXICO BAJA CAL N 7 H BEHIND UTC ABOVE 28TH PARALLAL APR 3 -MEXICO BAJA CAL N - 0CT 29 -MEXICO 6 H BEHIND UTC STATES OF DURANGO, -MEXICO COAHUILA, NUEVO LEON, -MEXICO TAMAULIPAS -MEXICO 5 H BEHIND UTC STATES OF DURANGO, -MEXICO COAHUILA, NUEVO LEON, -MEXICO TAMAULIPAS APR 3 - OCT 29 -MEXICO 6 H BEHIND UTC GENERAL MEXICO, STATES OF -MEXICO CAMPECHE, QUINTANA ROO AND -MEXICO YUCATAN -MIDWAY ISLAND 11 H BEHIND UTC -MONACO 1 H AHEAD OF UTC -MONACO 2 H AHEAD OF UTC MAR 27 - SEP 24 -MONGOLIA 8 H AHEAD OF UTC -MONGOLIA 9 H AHEAD OF UTC MAR 27 - SEP 24 -MONTSERRAT 4 H BEHIND UTC -MOROCCO ON UTC -MOZAMBIQUE 2 H AHEAD OF UTC -NAMIBIA 2 H AHEAD OF UTC -NAURU, REP OF 12 H AHEAD OF UTC -NEPAL 5H45M AHEAD OF UTC -NETHERLANDS 1 H AHEAD OF UTC -NETHERLANDS 2 H AHEAD OF UTC MAR 27 - SEP 24 -NETHERLANDS 4 H BEHIND UTC ANTILLES AND SOUTHERN ST. -NETHERLANDS MAARTEN -NEW CALEDONIA 11 H AHEAD OF UTC -NEW HEBRIDES SEE VANUATU -NEW ZEALAND 12 H AHEAD OF UTC (EXCLUDING CHATHAM ISLAND) -NEW ZEALAND 13 H AHEAD OF UTC OCT 30, '88-MAR 4, '89 -NEW ZEALAND 12H45M AHEAD OF UTC CHATHAM ISLAND -NICARAGUA 6 H BEHIND UTC -NIGER 1 H AHEAD OF UTC -NIGERIA 1 H AHEAD OF UTC -NIUE ISLAND 11 H BEHIND UTC -NORFOLK ISLAND 11H30M AHEAD OF UTC -NORTHERN IRELAND ON UTC WALES, SCOTLAND, N.I., -NORTHERN IRELAND CH.IS. -NORTHERN IRELAND 1 H AHEAD OF UTC MAR 27 - OCT 22 -NORWAY 1 H AHEAD OF UTC -NORWAY 2 H AHEAD OF UTC MAR 27 - SEP 24 -OGO ON UTC -OMAN 4 H AHEAD OF UTC -PACIFIC ISLAND T.T. -PALAU ISLAND 9 H AHEAD OF UTC -PAKISTAN 5 H AHEAD OF UTC -PANAMA 5 H BEHIND UTC -PAPUA NEW GUINEA 10 H AHEAD OF UTC INCLUDING BOUGAINVILLE -PAPUA NEW GUINEA ISLAND -PARAGUAY 4 H BEHIND UTC -PARAGUAY 3 H BEHIND UTC OCT 1, '88-MAR 31, '89 -PERU 5 H BEHIND UTC -PHILIPPINES 8 H AHEAD OF UTC -PONAPE ISLAND 11 H AHEAD OF UTC -POLAND 1 H AHEAD OF UTC -POLAND 2 H AHEAD OF UTC MAR 27 - SEP 24 -PORTUGAL MAINLAND ON UTC -PORTUGAL MAINLAND 1 H AHEAD OF UTC MAR 27 - SEP 24 -PORTUGAL AZORES 1 H BEHIND UTC -PORTUGAL AZORES ON UTC MAR 27 - SEP 24 -PORTUGAL MADEIRA ON UTC -PORTUGAL MADEIRA 1 H AHEAD OF UTC MAR 27 - SEP 24 -PUERTO RICO 4 H BEHIND UTC -QATAR 3 H AHEAD OF UTC -ROMANIA 2 H AHEAD OF UTC -ROMANIA 3 H AHEAD OF UTC MAR 27 - SEP 24 -RUSSIA SEE USSR -RWANDA 2 H AHEAD OF UTC -SABA 4 H BEHIND UTC ALSO BONAIRE, CURACAO, -SAMOA 11 H BEHIND UTC -SAN MARINO 1 H AHEAD OF UTC -SAN MARINO 2 H AHEAD OF UTC MAR 27 - SEP 24 -SAN SALVADOR 6 H BEHIND UTC -SAO TOME ISLAND ON UTC AND PRINCIPE ISLAND -SAUDI ARABIA 3 H AHEAD OF UTC -SCOTLAND SEE ENGLAND -SENEGAL ON UTC -SEYCHELLES 4 H AHEAD OF UTC -SIERRA LEONE ON UTC -SINGAPORE 8 H AHEAD OF UTC -SOLOMON ISLANDS 11 H AHEAD OF UTC EXCLUDING BOUGAINVILLE -SOLOMON ISLANDS ISLAND -SOMALI 3 H AHEAD OF UTC -SOUTH AFRICA 2 H AHEAD OF UTC -SPAIN CANARY IS ON UTC -SPAIN CANARY IS 1 H AHEAD OF UTC MAR 27 - SEP 24 -SPAIN 1 H AHEAD OF UTC CONTINENTAL, BALEARIC AND -SPAIN MALLORCA ISLANDS -SPAIN 2 H AHEAD OF UTC CONTINENTAL, BALEARIC AND -SPAIN MALLORCA ISLANDS MAR 27 - -SPAIN SEP 24 -SPAIN MAINLAND 1 H AHEAD OF UTC MELILLA -SPAIN MAINLAND 2 H AHEAD OF UTC MAR 27 - SEP 24 -SRI LANKA 5H30M AHEAD OF UTC -ST.MAARTEN -ST.KITTS-NEVIS 4 H BEHIND UTC -ST.LUCIA 4 H BEHIND UTC -ST.PIERRE 3 H BEHIND UTC INCLUDING MIQUELON -ST.PIERRE 2 H BEHIND UTC INLCUDING MIQUELON APR 3 -ST.PIERRE - OCT 29 -ST.VINCENT 4 H BEHIND UTC INCLUDING THE GRENADINES -ST. HELENA ON UTC -SURINAME 3 H BEHIND UTC -SWAZILAND 2 H AHEAD OF UTC -SWEDEN 1 H AHEAD OF UTC -SWEDEN 2 H AHEAD OF UTC MAR 27 - SEP 24 -SWITZERLAND 1 H AHEAD OF UTC -SWITZERLAND 2 H AHEAD OF UTC MAR 27 - SEP 24 -SYRIA 2 H AHEAD OF UTC -SYRIA 3 H AHEAD OF UTC MAR 15 - OCT 30 -TAHITI 10 H BEHIND UTC -TANZANIA 3 H AHEAD OF UTC -THAILAND 7 H AHEAD OF UTC -TRINIDAD / TOBAGO 4 H BEHIND UTC -TUNISIA 1 H AHEAD OF UTC -TUNISIA 2 H AHEAD OF UTC APR 10 - SEP 24 -TURKEY 2 H AHEAD OF UTC -TURKEY 3 H AHEAD OF UTC MAR 27 - SEP 24 -TURKS AND CAICOS 5 H BEHIND UTC -TURKS AND CAICOS 4 H BEHIND UTC APR 3 - OCT 29 -TUVALU 12 H AHEAD OF UTC -UDAN 2 H AHEAD OF UTC -UGANDA 3 H AHEAD OF UTC -UNITED ARAB EMIR. 4 H AHEAD OF UTC ABU DHABI, DUBAI, SHARJAH, -UNITED ARAB EMIR RAS AL KHAIMAH -UNITED KINGDOM ON UTC WALES, SCOTLAND, N.I., CH. -UNITED KINGDOM IS. -UNITED KINGDOM 1 H AHEAD OF UTC MAR 27 - OCT 22 -UNITED STATES SEE USA -UPPER VOLTA ON UTC -URUGUAY 3 H BEHIND UTC -URUGUAY 2 H BEHIND UTC DEC 11, '88-FEB 25, '89 -URAGUAY (ESTIMATED) -USA EASTERN 5 H BEHIND UTC NEW YORK, WASHINGTON -USA EASTERN 4 H BEHIND UTC APR 3 - OCT 30 -USA CENTRAL 6 H BEHIND UTC CHICAGO, HOUSTON -USA CENTRAL 5 H BEHIND UTC APR 3 - OCT 30 -USA MOUNTAIN 7 H BEHIND UTC DENVER -USA MOUNTAIN 6 H BEHIND UTC APR 3 - OCT 30 -USA PACIFIC 8 H BEHIND UTC L.A., SAN FRANCISCO -USA PACIFIC 7 H BEHIND UTC APR 3 - OCT 30 -USA ALASKA STD 9 H BEHIND UTC MOST OF ALASKA (AKST) -USA ALASKA STD 8 H BEHIND UTC APR 3 - OCT 30 (AKDT) -USA ALEUTIAN 10 H BEHIND UTC ISLANDS WEST OF 170W -USA - " - 9 H BEHIND UTC APR 3 - OCT 30 -USA HAWAII 10 H BEHIND UTC -USA BERING 11 H BEHIND UTC SAMOA, MIDWAY -USA FOR SPECIFIC INFO ON USA ZONES/TIMES CALL DOT 202-426-4520 -USSR WEST EUROP 3 H AHEAD OF UTC LENINGRAD, MOSCOW -USSR WEST EUROP 4 H AHEAD OF UTC APR 1 - SEP 30 -USSR CENTRAL EUR 4 H AHEAD OF UTC ROSTOV, BAKU -USSR CENTRAL EUR 5 H AHEAD OF UTC APR 1 - SEP 30 -USSR EAST EUROP 5 H AHEAD OF UTC SVERDLOVSK -USSR EAST EUROP 6 H AHEAD OF UTC APR 1 - SEP 30 -USSR WEST SIBERIAN 6 H AHEAD OF UTC TASHKENT, ALMA ATA -USSR WEST SIBERIAN 7 H AHEAD OF UTC APR 1 - SEP 30 -USSR WEST-CENTRAL 7 H AHEAD OF UTC NOVOSIBIRSK -USSR WEST-CENTRAL 8 H AHEAD OF UTC APR 1 - SEP 30 -USSR WEST-CENTRAL 8 H AHEAD OF UTC IRKUTSK -USSR WEST-CENTRAL 9 H AHEAD OF UTC APR 1 - SEP 30 -USSR CENTRAL SIB 9 H AHEAD OF UTC YAKUTSK -USSR CENTRAL SIB 10 H AHEAD OF UTC APR 1 - SEP 30 -USSR CENTRAL SIB 10 H AHEAD OF UTC VLADIVOSTOK -USSR CENTRAL SIB 11 H AHEAD OF UTC APR 1 - SEP 30 -USSR EAST SIBERIA 11 H AHEAD OF UTC MAGADAN -USSR EAST SIBERIA 12 H AHEAD OF UTC APR 1 - SEP 30 -USSR EAST SIBERIA 12 H AHEAD OF UTC PETROPAVLOVSK -USSR EAST SIBERIA 13 H AHEAD OF UTC APR 1 - SEP 30 -USSR EAST SIBERIA 13 H AHEAD OF UTC UELEN -USSR EAST SIBERIA 14 H AHEAD OF UTC APR 1 - SEP 30 -VANUATU 11 H AHEAD OF UTC (NEW HEBRIDES) -VANUATU 12 H AHEAD OF UTC SEP 25, '88-MAR 25, '89 -VANUATU (ESTIMATED) -VATICAN 1 H AHEAD OF UTC -VATICAN 2 H AHEAD OF UTC MAR 27 - SEP 24 -VIETNAM 7 H AHEAD OF UTC -VIRGIN ISLANDS 4 H BEHIND UTC ST.CROIX, ST.THOMAS, -VIRGIN ISLANDS ST.JOHN -WAKE ISLAND 12 H AHEAD OF UTC -WALES SEE ENGLAND -WALLIS/FUTUNA IS. 12 H AHEAD OF UTC -WINDWARD ISLANDS 4 H BEHIND UTC GRENADA, ST. LUCIA -YEMEN 3 H AHEAD OF UTC BOTH REPUBLICS -YUGOSLAVIA 1 H AHEAD OF UTC -YUGOSLAVIA 2 H AHEAD OF UTC MAR 27 - SEP 24 -ZAIRE EAST 1 H AHEAD OF UTC KINSHASA MBANDAKA -ZAIRE WEST 2 H AHEAD OF UTC LUBUMBASHI, KASAI, KIVU, -ZAIRE WEST HAUT-ZAIRE, SHABA -ZAMBIA 2 H AHEAD OF UTC -ZIMBABWE 2 H AHEAD OF UTC diff --git a/share/zoneinfo/ialloc.c b/share/zoneinfo/ialloc.c deleted file mode 100644 index 118a97b..0000000 --- a/share/zoneinfo/ialloc.c +++ /dev/null @@ -1,140 +0,0 @@ -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Arthur David Olson of the National Cancer Institute. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef lint -static char sccsid[] = "@(#)ialloc.c 8.1 (Berkeley) 6/8/93"; -#endif /* not lint */ - -#ifdef notdef -static char elsieid[] = "@(#)ialloc.c 8.18"; -#endif - -/*LINTLIBRARY*/ - -#include -#include - -#ifdef MAL -#define NULLMAL(x) ((x) == NULL || (x) == MAL) -#else /* !defined MAL */ -#define NULLMAL(x) ((x) == NULL) -#endif /* !defined MAL */ - -#define nonzero(n) (((n) == 0) ? 1 : (n)) - -char * icalloc __P((int nelem, int elsize)); -char * icatalloc __P((char * old, const char * new)); -char * icpyalloc __P((const char * string)); -char * imalloc __P((int n)); -char * irealloc __P((char * pointer, int size)); -void ifree __P((char * pointer)); - -char * -imalloc(n) -const int n; -{ -#ifdef MAL - register char * result; - - result = malloc((size_t) nonzero(n)); - return NULLMAL(result) ? NULL : result; -#else /* !defined MAL */ - return malloc((size_t) nonzero(n)); -#endif /* !defined MAL */ -} - -char * -icalloc(nelem, elsize) -int nelem; -int elsize; -{ - if (nelem == 0 || elsize == 0) - nelem = elsize = 1; - return calloc((size_t) nelem, (size_t) elsize); -} - -char * -irealloc(pointer, size) -char * const pointer; -const int size; -{ - if (NULLMAL(pointer)) - return imalloc(size); - return realloc((void *) pointer, (size_t) nonzero(size)); -} - -char * -icatalloc(old, new) -char * const old; -const char * const new; -{ - register char * result; - register oldsize, newsize; - - newsize = NULLMAL(new) ? 0 : strlen(new); - if (NULLMAL(old)) - oldsize = 0; - else if (newsize == 0) - return old; - else oldsize = strlen(old); - if ((result = irealloc(old, oldsize + newsize + 1)) != NULL) - if (!NULLMAL(new)) - (void) strcpy(result + oldsize, new); - return result; -} - -char * -icpyalloc(string) -const char * const string; -{ - return icatalloc((char *) NULL, string); -} - -void -ifree(p) -char * const p; -{ - if (!NULLMAL(p)) - (void) free(p); -} - -void -icfree(p) -char * const p; -{ - if (!NULLMAL(p)) - (void) free(p); -} diff --git a/share/zoneinfo/scheck.c b/share/zoneinfo/scheck.c deleted file mode 100644 index 44a7c3c..0000000 --- a/share/zoneinfo/scheck.c +++ /dev/null @@ -1,99 +0,0 @@ -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Arthur David Olson of the National Cancer Institute. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef lint -static char sccsid[] = "@(#)scheck.c 8.1 (Berkeley) 6/8/93"; -#endif /* not lint */ - -#ifdef notdef -static char elsieid[] = "@(#)scheck.c 8.9"; -#endif - -/*LINTLIBRARY*/ - -#include -#include -#include -#include - -char * -scheck(string, format) -const char * const string; -const char * const format; -{ - register char * fbuf; - register const char * fp; - register char * tp; - register int c; - register char * result; - char dummy; - - result = ""; - if (string == NULL || format == NULL) - return result; - fbuf = malloc(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((char *)string, fbuf, &dummy) != 1) - result = (char *) format; - ifree(fbuf); - return result; -} diff --git a/share/zoneinfo/tzfile.5 b/share/zoneinfo/tzfile.5 deleted file mode 100644 index 07842cf..0000000 --- a/share/zoneinfo/tzfile.5 +++ /dev/null @@ -1,162 +0,0 @@ -.\" Copyright (c) 1991, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" This code is derived from software contributed to Berkeley by -.\" Arthur David Olson of the National Cancer Institute. -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)tzfile.5 8.1 (Berkeley) 6/8/93 -.\" -.Dd June 8, 1993 -.Dt TZFILE 5 -.Os -.Sh NAME -.Nm tzfile -.Nd time zone information -.Sh SYNOPSIS -.Fd #include -.Sh DESCRIPTION -The time zone information files used by -.Xr tzset 3 -begin with bytes reserved for future use, -followed by four four-byte values of type -.Em long , -written in a ``standard'' byte order -(the high-order byte of the value is written first). -These values are, -in order: -.Bl -tag -width tzh_ttisstdcnt -.It Fa tzh_ttisstdcnt -The number of standard/wall indicators stored in the file. -.It Fa tzh_leapcnt -The number of leap seconds for which data is stored in the file. -.It Fa tzh_timecnt -The number of "transition times" for which data is stored -in the file. -.It Fa tzh_typecnt -The number of "local time types" for which data is stored -in the file (must not be zero). -.It Fa tzh_charcnt -The number of characters of "time zone abbreviation strings" -stored in the file. -.El -.Pp -The above header is followed by -.Fa tzh_timecnt -four-byte values of type -.Em long , -sorted in ascending order. -These values are written in ``standard'' byte order. -Each is used as a transition time (as returned by -.Xr time 2 ) -at which the rules for computing local time change. -Next come -.Fa tzh_timecnt -one-byte values of type -.Fa unsigned char ; -each one tells which of the different types of ``local time'' types -described in the file is associated with the same-indexed transition time. -These values serve as indices into an array of -.Fa ttinfo -structures that appears next in the file; -these structures are defined as follows: -.Bd -literal -offset indent -struct ttinfo { - long tt_gmtoff; - int tt_isdst; - unsigned int tt_abbrind; -}; -.Ed -.Pp -Each structure is written as a four-byte value for -.Fa tt_gmtoff -of type -.Em long , -in a standard byte order, followed by a one-byte value for -.Fa tt_isdst -and a one-byte value for -.Fa tt_abbrind . -In each structure, -.Fa tt_gmtoff -gives the number of seconds to be added to -.Tn GMT , -.Fa tt_isdst -tells whether -.Fa tm_isdst -should be set by -.Xr localtime 3 -and -.Fa tt_abbrind -serves as an index into the array of time zone abbreviation characters -that follow the -.Fa ttinfo -structure(s) in the file. -.Pp -Then there are -.Fa tzh_leapcnt -pairs of four-byte values, written in standard byte order; -the first value of each pair gives the time -(as returned by -.Xr time 2 ) -at which a leap second occurs; -the second gives the -.Em total -number of leap seconds to be applied after the given time. -The pairs of values are sorted in ascending order by time. -.Pp -Finally there are -.Fa tzh_ttisstdcnt -standard/wall indicators, each stored as a one-byte value; -they tell whether the transition times associated with local time types -were specified as standard time or wall clock time, -and are used when a time zone file is used in handling -.Tn POSIX Ns -style -time zone environment variables. -.Pp -.Fa Localtime -uses the first standard-time -.Fa ttinfo -structure in the file -(or simply the first -.Fa ttinfo -structure in the absence of a standard-time structure) -if either -.Fa tzh_timecnt -is zero or the time argument is less than the first transition time recorded -in the file. -.Sh SEE ALSO -.Xr ctime 3 -.Sh HISTORY -The -.Nm tzfile -file format appeared in -.Bx 4.3 tahoe. diff --git a/share/zoneinfo/zic.8 b/share/zoneinfo/zic.8 deleted file mode 100644 index 66191c0..0000000 --- a/share/zoneinfo/zic.8 +++ /dev/null @@ -1,424 +0,0 @@ -.\" Copyright (c) 1991, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" This code is derived from software contributed to Berkeley by -.\" Arthur David Olson of the National Cancer Institute. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)zic.8 8.1 (Berkeley) 6/8/93 -.\" -.TH ZIC 8 -.SH NAME -zic \- time zone compiler -.SH SYNOPSIS -.B zic -[ -.B \-v -] [ -.B \-d -.I directory -] [ -.B \-l -.I localtime -] [ -.B \-p -.I posixrules -] [ -.B \-L -.I leapsecondfilename -] [ -.B \-s -] [ -.I filename -\&... ] -.SH DESCRIPTION -.if t .ds lq `` -.if t .ds rq '' -.if n .ds lq \&"\" -.if n .ds rq \&"\" -.de q -\\$3\*(lq\\$1\*(rq\\$2 -.. -.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 input contained a link line of the form -.sp -.ti +.5i -Link \fItimezone\fP localtime -.TP -.BI "\-p " timezone -Use the given time zone's rules when handling POSIX-format -time zone environment variables. -.I Zic -will act as if the input contained a link line of the form -.sp -.ti +.5i -Link \fItimezone\fP posixrules -.TP -.BI "\-L " leapsecondfilename -Read leap second information from the file with the given name. -If this option is not used, -no leap second information appears in output files. -.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. -.TP -.B \-s -Limit time values stored in output files to values that are the same -whether they're taken to be signed or unsigned. -You can use this option to generate SVVS-compatible files. -.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 rule 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 effect. -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 -.q "wall clock" -time or -.B s -if the given time is local -.q 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 -.q "variable part" -(for example, the -.q S -or -.q D -in -.q EST -or -.q 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 -.q "variable part" -of the time zone abbreviation goes. -.TP -.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 -.q continuation -line; this has the same form as a zone line except that the -string -.q 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. -.PP -Lines in the file that describes leap seconds have the following form: -.nf -.B -.ti +.5i -.ta \w'Leap\0\0'u +\w'YEAR\0\0'u +\w'MONTH\0\0'u +\w'DAY\0\0'u +\w'HH:MM:SS\0\0'u +\w'CORR\0\0'u -Leap YEAR MONTH DAY HH:MM:SS CORR R/S -.sp -For example: -.ti +.5i -.sp -Leap 1974 Dec 31 23:59:60 + S -.sp -.fi -The -.BR YEAR , -.BR MONTH , -.BR DAY , -and -.B HH:MM:SS -fields tell when the leap second happened. -The -.B CORR -field -should be -.q + -if a second was added -or -.q - -if a second was skipped. -The -.B R/S -field -should be (an abbreviation of) -.q Stationary -if the leap second time given by the other fields should be interpreted as GMT -or -(an abbreviation of) -.q Rolling -if the leap second time given by the other fields should be interpreted as -local wall clock time. -.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 FILE -/etc/zoneinfo standard directory used for created files -.SH "SEE ALSO" -newctime(3), tzfile(5), zdump(8) -.. @(#)zic.8 4.4 diff --git a/share/zoneinfo/zic.c b/share/zoneinfo/zic.c deleted file mode 100644 index 8d80e63..0000000 --- a/share/zoneinfo/zic.c +++ /dev/null @@ -1,1892 +0,0 @@ -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Arthur David Olson of the National Cancer Institute. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef lint -static char sccsid[] = "@(#)zic.c 8.1 (Berkeley) 7/19/93"; -#endif /* not lint */ - -#ifdef notdef -static char elsieid[] = "@(#)zic.c 4.12"; -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef TRUE -#define TRUE 1 -#define FALSE 0 -#endif /* !defined TRUE */ - -struct rule { - const char * r_filename; - int r_linenum; - const char * r_name; - - int r_loyear; /* for example, 1986 */ - int r_hiyear; /* for example, 1986 */ - const char * r_yrtype; - - int r_month; /* 0..11 */ - - int r_dycode; /* see below */ - int r_dayofmonth; - int r_wday; - - long r_tod; /* time from midnight */ - int r_todisstd; /* above is standard time if TRUE */ - /* or wall clock time if FALSE */ - long r_stdoff; /* offset from standard time */ - const char * r_abbrvar; /* variable part of abbreviation */ - - int r_todo; /* a rule to do (used in outzone) */ - time_t r_temp; /* used in outzone */ -}; - -/* -** r_dycode r_dayofmonth r_wday -*/ - -#define DC_DOM 0 /* 1..31 */ /* unused */ -#define DC_DOWGEQ 1 /* 1..31 */ /* 0..6 (Sun..Sat) */ -#define DC_DOWLEQ 2 /* 1..31 */ /* 0..6 (Sun..Sat) */ - -struct zone { - const char * z_filename; - int z_linenum; - - const char * z_name; - long z_gmtoff; - const char * z_rule; - const char * z_format; - - long z_stdoff; - - struct rule * z_rules; - int z_nrules; - - struct rule z_untilrule; - time_t z_untiltime; -}; - -extern char * icatalloc __P((char * old, const char * new)); -extern char * icpyalloc __P((const char * string)); -extern void ifree __P((char * p)); -extern char * imalloc __P((int n)); -extern char * irealloc __P((char * old, int n)); -extern int link __P((const char * fromname, const char * toname)); -extern char * optarg; -extern int optind; -extern void perror __P((const char * string)); -extern char * scheck __P((const char * string, const char * format)); -static void addtt __P((time_t starttime, int type)); -static int addtype - __P((long gmtoff, const char * abbr, int isdst, - int ttisstd)); -static void addleap __P((time_t t, int positive, int rolling)); -static void adjleap __P((void)); -static void associate __P((void)); -static int ciequal __P((const char * ap, const char * bp)); -static void convert __P((long val, char * buf)); -static void dolink __P((const char * fromfile, const char * tofile)); -static void eat __P((const char * name, int num)); -static void eats __P((const char * name, int num, - const char * rname, int rnum)); -static long eitol __P((int i)); -static void error __P((const char * message)); -static char ** getfields __P((char * buf)); -static long gethms __P((char * string, const char * errstrng, - int signable)); -static void infile __P((const char * filename)); -static void inleap __P((char ** fields, int nfields)); -static void inlink __P((char ** fields, int nfields)); -static void inrule __P((char ** fields, int nfields)); -static int inzcont __P((char ** fields, int nfields)); -static int inzone __P((char ** fields, int nfields)); -static int inzsub __P((char ** fields, int nfields, int iscont)); -static int itsabbr __P((const char * abbr, const char * word)); -static int itsdir __P((const char * name)); -static int lowerit __P((int c)); -static char * memcheck __P((char * tocheck)); -static int mkdirs __P((char * filename)); -static void newabbr __P((const char * abbr)); -static long oadd __P((long t1, long t2)); -static void outzone __P((const struct zone * zp, int ntzones)); -static void puttzcode __P((long code, FILE * fp)); -static int rcomp __P((const void *leftp, const void *rightp)); -static time_t rpytime __P((const struct rule * rp, int wantedy)); -static void rulesub __P((struct rule * rp, char * loyearp, char * hiyearp, - char * typep, char * monthp, char * dayp, char * timep)); -static void setboundaries __P((void)); -static time_t tadd __P((time_t t1, long t2)); -static void usage __P((void)); -static void writezone __P((const char * name)); -static int yearistype __P((int year, const char * type)); - -static int charcnt; -static int errors; -static const char * filename; -static int leapcnt; -static int linenum; -static time_t max_time; -static int max_year; -static time_t min_time; -static int min_year; -static int noise; -static const char * rfilename; -static int rlinenum; -static const char * progname; -static int timecnt; -static int typecnt; -static int tt_signed; - -/* -** Line codes. -*/ - -#define LC_RULE 0 -#define LC_ZONE 1 -#define LC_LINK 2 -#define LC_LEAP 3 - -/* -** Which fields are which on a Zone line. -*/ - -#define ZF_NAME 1 -#define ZF_GMTOFF 2 -#define ZF_RULE 3 -#define ZF_FORMAT 4 -#define ZF_TILYEAR 5 -#define ZF_TILMONTH 6 -#define ZF_TILDAY 7 -#define ZF_TILTIME 8 -#define ZONE_MINFIELDS 5 -#define ZONE_MAXFIELDS 9 - -/* -** Which fields are which on a Zone continuation line. -*/ - -#define ZFC_GMTOFF 0 -#define ZFC_RULE 1 -#define ZFC_FORMAT 2 -#define ZFC_TILYEAR 3 -#define ZFC_TILMONTH 4 -#define ZFC_TILDAY 5 -#define ZFC_TILTIME 6 -#define ZONEC_MINFIELDS 3 -#define ZONEC_MAXFIELDS 7 - -/* -** Which files are which on a Rule line. -*/ - -#define RF_NAME 1 -#define RF_LOYEAR 2 -#define RF_HIYEAR 3 -#define RF_COMMAND 4 -#define RF_MONTH 5 -#define RF_DAY 6 -#define RF_TOD 7 -#define RF_STDOFF 8 -#define RF_ABBRVAR 9 -#define RULE_FIELDS 10 - -/* -** Which fields are which on a Link line. -*/ - -#define LF_FROM 1 -#define LF_TO 2 -#define LINK_FIELDS 3 - -/* -** Which fields are which on a Leap line. -*/ - -#define LP_YEAR 1 -#define LP_MONTH 2 -#define LP_DAY 3 -#define LP_TIME 4 -#define LP_CORR 5 -#define LP_ROLL 6 -#define LEAP_FIELDS 7 - -/* -** Year synonyms. -*/ - -#define YR_MINIMUM 0 -#define YR_MAXIMUM 1 -#define YR_ONLY 2 - -static struct rule * rules; -static int nrules; /* number of rules */ - -static struct zone * zones; -static int nzones; /* number of zones */ - -struct link { - const char * l_filename; - int l_linenum; - const char * l_from; - const char * l_to; -}; - -static struct link * links; -static int nlinks; - -struct lookup { - const char * l_word; - const int l_value; -}; - -static struct lookup const * byword __P((const char * string, - const struct lookup * lp)); - -static struct lookup const line_codes[] = { - "Rule", LC_RULE, - "Zone", LC_ZONE, - "Link", LC_LINK, - "Leap", LC_LEAP, - NULL, 0 -}; - -static struct lookup const mon_names[] = { - "January", TM_JANUARY, - "February", TM_FEBRUARY, - "March", TM_MARCH, - "April", TM_APRIL, - "May", TM_MAY, - "June", TM_JUNE, - "July", TM_JULY, - "August", TM_AUGUST, - "September", TM_SEPTEMBER, - "October", TM_OCTOBER, - "November", TM_NOVEMBER, - "December", TM_DECEMBER, - NULL, 0 -}; - -static struct lookup const wday_names[] = { - "Sunday", TM_SUNDAY, - "Monday", TM_MONDAY, - "Tuesday", TM_TUESDAY, - "Wednesday", TM_WEDNESDAY, - "Thursday", TM_THURSDAY, - "Friday", TM_FRIDAY, - "Saturday", TM_SATURDAY, - NULL, 0 -}; - -static struct lookup const lasts[] = { - "last-Sunday", TM_SUNDAY, - "last-Monday", TM_MONDAY, - "last-Tuesday", TM_TUESDAY, - "last-Wednesday", TM_WEDNESDAY, - "last-Thursday", TM_THURSDAY, - "last-Friday", TM_FRIDAY, - "last-Saturday", TM_SATURDAY, - NULL, 0 -}; - -static struct lookup const begin_years[] = { - "minimum", YR_MINIMUM, - "maximum", YR_MAXIMUM, - NULL, 0 -}; - -static struct lookup const end_years[] = { - "minimum", YR_MINIMUM, - "maximum", YR_MAXIMUM, - "only", YR_ONLY, - NULL, 0 -}; - -static struct lookup const leap_types[] = { - "Rolling", TRUE, - "Stationary", FALSE, - NULL, 0 -}; - -static const int len_months[2][MONSPERYEAR] = { - 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, - 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 -}; - -static const int len_years[2] = { - DAYSPERNYEAR, DAYSPERLYEAR -}; - -static time_t ats[TZ_MAX_TIMES]; -static unsigned char types[TZ_MAX_TIMES]; -static long gmtoffs[TZ_MAX_TYPES]; -static char isdsts[TZ_MAX_TYPES]; -static char abbrinds[TZ_MAX_TYPES]; -static char ttisstds[TZ_MAX_TYPES]; -static char chars[TZ_MAX_CHARS]; -static time_t trans[TZ_MAX_LEAPS]; -static long corr[TZ_MAX_LEAPS]; -static char roll[TZ_MAX_LEAPS]; - -/* -** Memory allocation. -*/ - -static char * -memcheck(ptr) -char * const ptr; -{ - if (ptr == NULL) { - (void) perror(progname); - (void) exit(EXIT_FAILURE); - } - return ptr; -} - -#define emalloc(size) memcheck(imalloc(size)) -#define erealloc(ptr, size) memcheck(irealloc(ptr, size)) -#define ecpyalloc(ptr) memcheck(icpyalloc(ptr)) -#define ecatalloc(oldp, newp) memcheck(icatalloc(oldp, newp)) - -/* -** Error handling. -*/ - -static void -eats(name, num, rname, rnum) -const char * const name; -const int num; -const char * const rname; -const int rnum; -{ - filename = name; - linenum = num; - rfilename = rname; - rlinenum = rnum; -} - -static void -eat(name, num) -const char * const name; -const int num; -{ - eats(name, num, (char *) NULL, -1); -} - -static void -error(string) -const char * const string; -{ - /* - ** Match the format of "cc" to allow sh users to - ** zic ... 2>&1 | error -t "*" -v - ** on BSD systems. - */ - (void) fprintf(stderr, "\"%s\", line %d: %s", - filename, linenum, string); - if (rfilename != NULL) - (void) fprintf(stderr, " (rule from \"%s\", line %d)", - rfilename, rlinenum); - (void) fprintf(stderr, "\n"); - ++errors; -} - -static void -usage() -{ - (void) fprintf(stderr, -"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d directory ]\n\ -\t[ -L leapseconds ] [ filename ... ]\n", - progname, progname); - (void) exit(EXIT_FAILURE); -} - -static const char * psxrules = NULL; -static const char * lcltime = NULL; -static const char * directory = NULL; -static const char * leapsec = NULL; -static int sflag = FALSE; - -int -main(argc, argv) -int argc; -char * argv[]; -{ - register int i, j; - register int c; - - (void) umask(umask(022) | 022); - progname = argv[0]; - while ((c = getopt(argc, argv, "d:l:p:L:vs")) != EOF) - switch (c) { - default: - usage(); - case 'd': - if (directory == NULL) - directory = optarg; - else { - (void) fprintf(stderr, -"%s: More than one -d option specified\n", - progname); - (void) exit(EXIT_FAILURE); - } - break; - case 'l': - if (lcltime == NULL) - lcltime = optarg; - else { - (void) fprintf(stderr, -"%s: More than one -l option specified\n", - progname); - (void) exit(EXIT_FAILURE); - } - break; - case 'p': - if (psxrules == NULL) - psxrules = optarg; - else { - (void) fprintf(stderr, -"%s: More than one -p option specified\n", - progname); - (void) exit(EXIT_FAILURE); - } - break; - case 'L': - if (leapsec == NULL) - leapsec = optarg; - else { - (void) fprintf(stderr, -"%s: More than one -L option specified\n", - progname); - (void) exit(EXIT_FAILURE); - } - break; - case 'v': - noise = TRUE; - break; - case 's': - sflag = TRUE; - break; - } - if (optind == argc - 1 && strcmp(argv[optind], "=") == 0) - usage(); /* usage message by request */ - if (directory == NULL) - directory = TZDIR; - - setboundaries(); - - if (optind < argc && leapsec != NULL) { - infile(leapsec); - adjleap(); - } - - zones = (struct zone *) emalloc(0); - rules = (struct rule *) emalloc(0); - links = (struct link *) emalloc(0); - for (i = optind; i < argc; ++i) - infile(argv[i]); - if (errors) - (void) exit(EXIT_FAILURE); - associate(); - for (i = 0; i < nzones; i = j) { - /* - ** Find the next non-continuation zone entry. - */ - for (j = i + 1; j < nzones && zones[j].z_name == NULL; ++j) - ; - outzone(&zones[i], j - i); - } - /* - ** Make links. - */ - for (i = 0; i < nlinks; ++i) - dolink(links[i].l_from, links[i].l_to); - if (lcltime != NULL) - dolink(lcltime, TZDEFAULT); - if (psxrules != NULL) - dolink(psxrules, TZDEFRULES); - return (errors == 0) ? EXIT_SUCCESS : EXIT_FAILURE; -} - -static void -dolink(fromfile, tofile) -const char * const fromfile; -const char * const tofile; -{ - register char * fromname; - register char * toname; - - fromname = ecpyalloc(directory); - fromname = ecatalloc(fromname, "/"); - fromname = ecatalloc(fromname, fromfile); - toname = ecpyalloc(directory); - toname = ecatalloc(toname, "/"); - toname = ecatalloc(toname, tofile); - /* - ** We get to be careful here since - ** there's a fair chance of root running us. - */ - if (!itsdir(toname)) - (void) remove(toname); - if (link(fromname, toname) != 0) { - (void) fprintf(stderr, "%s: Can't link from %s to ", - progname, fromname); - (void) perror(toname); - (void) exit(EXIT_FAILURE); - } - ifree(fromname); - ifree(toname); -} - -static void -setboundaries() -{ - register time_t bit; - - for (bit = 1; bit > 0; bit <<= 1) - ; - if (bit == 0) { /* time_t is an unsigned type */ - tt_signed = FALSE; - min_time = 0; - max_time = ~(time_t) 0; - if (sflag) - max_time >>= 1; - } else { - tt_signed = TRUE; - min_time = bit; - max_time = bit; - ++max_time; - max_time = -max_time; - if (sflag) - min_time = 0; - } - min_year = TM_YEAR_BASE + gmtime(&min_time)->tm_year; - max_year = TM_YEAR_BASE + gmtime(&max_time)->tm_year; -} - -static int -itsdir(name) -const char * const name; -{ - struct stat s; - - return (stat(name, &s) == 0 && S_ISDIR(s.st_mode)); -} - -/* -** Associate sets of rules with zones. -*/ - -/* -** Sort by rule name. -*/ - -static int -rcomp(cp1, cp2) -const void * cp1; -const void * cp2; -{ - return strcmp(((struct rule *) cp1)->r_name, - ((struct rule *) cp2)->r_name); -} - -static void -associate() -{ - register struct zone * zp; - register struct rule * rp; - register int base, out; - register int i; - - if (nrules != 0) - (void) qsort((void *) rules, (size_t) nrules, - (size_t) sizeof *rules, rcomp); - for (i = 0; i < nzones; ++i) { - zp = &zones[i]; - zp->z_rules = NULL; - zp->z_nrules = 0; - } - for (base = 0; base < nrules; base = out) { - rp = &rules[base]; - for (out = base + 1; out < nrules; ++out) - if (strcmp(rp->r_name, rules[out].r_name) != 0) - break; - for (i = 0; i < nzones; ++i) { - zp = &zones[i]; - if (strcmp(zp->z_rule, rp->r_name) != 0) - continue; - zp->z_rules = rp; - zp->z_nrules = out - base; - } - } - for (i = 0; i < nzones; ++i) { - zp = &zones[i]; - if (zp->z_nrules == 0) { - /* - ** Maybe we have a local standard time offset. - */ - eat(zp->z_filename, zp->z_linenum); - zp->z_stdoff = - gethms((char *)zp->z_rule, "unruly zone", TRUE); - /* - ** Note, though, that if there's no rule, - ** a '%s' in the format is a bad thing. - */ - if (strchr(zp->z_format, '%') != 0) - error("%s in ruleless zone"); - } - } - if (errors) - (void) exit(EXIT_FAILURE); -} - -static void -infile(name) -const char * name; -{ - register FILE * fp; - register char ** fields; - register char * cp; - register const struct lookup * lp; - register int nfields; - register int wantcont; - register int num; - char buf[BUFSIZ]; - - if (strcmp(name, "-") == 0) { - name = "standard input"; - fp = stdin; - } else if ((fp = fopen(name, "r")) == NULL) { - (void) fprintf(stderr, "%s: Can't open ", progname); - (void) perror(name); - (void) exit(EXIT_FAILURE); - } - wantcont = FALSE; - for (num = 1; ; ++num) { - eat(name, num); - if (fgets(buf, (int) sizeof buf, fp) != buf) - break; - cp = strchr(buf, '\n'); - if (cp == NULL) { - error("line too long"); - (void) exit(EXIT_FAILURE); - } - *cp = '\0'; - fields = getfields(buf); - nfields = 0; - while (fields[nfields] != NULL) { - if (ciequal(fields[nfields], "-")) - fields[nfields] = ""; - ++nfields; - } - if (nfields == 0) { - /* nothing to do */ - } else if (wantcont) { - wantcont = inzcont(fields, nfields); - } else { - lp = byword(fields[0], line_codes); - if (lp == NULL) - error("input line of unknown type"); - else switch ((int) (lp->l_value)) { - case LC_RULE: - inrule(fields, nfields); - wantcont = FALSE; - break; - case LC_ZONE: - wantcont = inzone(fields, nfields); - break; - case LC_LINK: - inlink(fields, nfields); - wantcont = FALSE; - break; - case LC_LEAP: - if (name != leapsec) - (void) fprintf(stderr, -"%s: Leap line in non leap seconds file %s\n", - progname, name); - else inleap(fields, nfields); - wantcont = FALSE; - break; - default: /* "cannot happen" */ - (void) fprintf(stderr, -"%s: panic: Invalid l_value %d\n", - progname, lp->l_value); - (void) exit(EXIT_FAILURE); - } - } - ifree((char *) fields); - } - if (ferror(fp)) { - (void) fprintf(stderr, "%s: Error reading ", progname); - (void) perror(filename); - (void) exit(EXIT_FAILURE); - } - if (fp != stdin && fclose(fp)) { - (void) fprintf(stderr, "%s: Error closing ", progname); - (void) perror(filename); - (void) exit(EXIT_FAILURE); - } - if (wantcont) - error("expected continuation line not found"); -} - -/* -** Convert a string of one of the forms -** h -h hh:mm -hh:mm hh:mm:ss -hh:mm:ss -** into a number of seconds. -** A null string maps to zero. -** Call error with errstring and return zero on errors. -*/ - -static long -gethms(string, errstring, signable) -char * string; -const char * const errstring; -const int signable; -{ - int hh, mm, ss, sign; - - if (string == NULL || *string == '\0') - return 0; - if (!signable) - sign = 1; - else if (*string == '-') { - sign = -1; - ++string; - } else sign = 1; - if (sscanf(string, scheck(string, "%d"), &hh) == 1) - mm = ss = 0; - else if (sscanf(string, scheck(string, "%d:%d"), &hh, &mm) == 2) - ss = 0; - else if (sscanf(string, scheck(string, "%d:%d:%d"), - &hh, &mm, &ss) != 3) { - error(errstring); - return 0; - } - if (hh < 0 || hh >= HOURSPERDAY || - mm < 0 || mm >= MINSPERHOUR || - ss < 0 || ss > SECSPERMIN) { - error(errstring); - return 0; - } - return eitol(sign) * - (eitol(hh * MINSPERHOUR + mm) * - eitol(SECSPERMIN) + eitol(ss)); -} - -static void -inrule(fields, nfields) -register char ** const fields; -const int nfields; -{ - static struct rule r; - - if (nfields != RULE_FIELDS) { - error("wrong number of fields on Rule line"); - return; - } - if (*fields[RF_NAME] == '\0') { - error("nameless rule"); - return; - } - r.r_filename = filename; - r.r_linenum = linenum; - r.r_stdoff = gethms(fields[RF_STDOFF], "invalid saved time", TRUE); - rulesub(&r, fields[RF_LOYEAR], fields[RF_HIYEAR], fields[RF_COMMAND], - fields[RF_MONTH], fields[RF_DAY], fields[RF_TOD]); - r.r_name = ecpyalloc(fields[RF_NAME]); - r.r_abbrvar = ecpyalloc(fields[RF_ABBRVAR]); - rules = (struct rule *) erealloc((char *) rules, - (int) ((nrules + 1) * sizeof *rules)); - rules[nrules++] = r; -} - -static int -inzone(fields, nfields) -register char ** const fields; -const int nfields; -{ - register int i; - char buf[132]; - - if (nfields < ZONE_MINFIELDS || nfields > ZONE_MAXFIELDS) { - error("wrong number of fields on Zone line"); - return FALSE; - } - if (strcmp(fields[ZF_NAME], TZDEFAULT) == 0 && lcltime != NULL) { - (void) sprintf(buf, - "\"Zone %s\" line and -l option are mutually exclusive", - TZDEFAULT); - error(buf); - return FALSE; - } - if (strcmp(fields[ZF_NAME], TZDEFRULES) == 0 && psxrules != NULL) { - (void) sprintf(buf, - "\"Zone %s\" line and -p option are mutually exclusive", - TZDEFRULES); - error(buf); - return FALSE; - } - for (i = 0; i < nzones; ++i) - if (zones[i].z_name != NULL && - strcmp(zones[i].z_name, fields[ZF_NAME]) == 0) { - (void) sprintf(buf, -"duplicate zone name %s (file \"%s\", line %d)", - fields[ZF_NAME], - zones[i].z_filename, - zones[i].z_linenum); - error(buf); - return FALSE; - } - return inzsub(fields, nfields, FALSE); -} - -static int -inzcont(fields, nfields) -register char ** const fields; -const int nfields; -{ - if (nfields < ZONEC_MINFIELDS || nfields > ZONEC_MAXFIELDS) { - error("wrong number of fields on Zone continuation line"); - return FALSE; - } - return inzsub(fields, nfields, TRUE); -} - -static int -inzsub(fields, nfields, iscont) -register char ** const fields; -const int nfields; -const int iscont; -{ - register char * cp; - static struct zone z; - register int i_gmtoff, i_rule, i_format; - register int i_untilyear, i_untilmonth; - register int i_untilday, i_untiltime; - register int hasuntil; - - if (iscont) { - i_gmtoff = ZFC_GMTOFF; - i_rule = ZFC_RULE; - i_format = ZFC_FORMAT; - i_untilyear = ZFC_TILYEAR; - i_untilmonth = ZFC_TILMONTH; - i_untilday = ZFC_TILDAY; - i_untiltime = ZFC_TILTIME; - z.z_name = NULL; - } else { - i_gmtoff = ZF_GMTOFF; - i_rule = ZF_RULE; - i_format = ZF_FORMAT; - i_untilyear = ZF_TILYEAR; - i_untilmonth = ZF_TILMONTH; - i_untilday = ZF_TILDAY; - i_untiltime = ZF_TILTIME; - z.z_name = ecpyalloc(fields[ZF_NAME]); - } - z.z_filename = filename; - z.z_linenum = linenum; - z.z_gmtoff = gethms(fields[i_gmtoff], "invalid GMT offset", TRUE); - if ((cp = strchr(fields[i_format], '%')) != 0) { - if (*++cp != 's' || strchr(cp, '%') != 0) { - error("invalid abbreviation format"); - return FALSE; - } - } - z.z_rule = ecpyalloc(fields[i_rule]); - z.z_format = ecpyalloc(fields[i_format]); - hasuntil = nfields > i_untilyear; - if (hasuntil) { - z.z_untilrule.r_filename = filename; - z.z_untilrule.r_linenum = linenum; - rulesub(&z.z_untilrule, - fields[i_untilyear], - "only", - "", - (nfields > i_untilmonth) ? fields[i_untilmonth] : "Jan", - (nfields > i_untilday) ? fields[i_untilday] : "1", - (nfields > i_untiltime) ? fields[i_untiltime] : "0"); - z.z_untiltime = rpytime(&z.z_untilrule, z.z_untilrule.r_loyear); - if (iscont && nzones > 0 && z.z_untiltime < max_time && - z.z_untiltime > min_time && - zones[nzones - 1].z_untiltime >= z.z_untiltime) { -error("Zone continuation line end time is not after end time of previous line"); - return FALSE; - } - } - zones = (struct zone *) erealloc((char *) zones, - (int) ((nzones + 1) * sizeof *zones)); - zones[nzones++] = z; - /* - ** If there was an UNTIL field on this line, - ** there's more information about the zone on the next line. - */ - return hasuntil; -} - -static void -inleap(fields, nfields) -register char ** const fields; -const int nfields; -{ - register const char * cp; - register const struct lookup * lp; - register int i, j; - int year, month, day; - long dayoff, tod; - time_t t; - - if (nfields != LEAP_FIELDS) { - error("wrong number of fields on Leap line"); - return; - } - dayoff = 0; - cp = fields[LP_YEAR]; - if (sscanf((char *)cp, scheck(cp, "%d"), &year) != 1 || - year < min_year || year > max_year) { - /* - * Leapin' Lizards! - */ - error("invalid leaping year"); - return; - } - j = EPOCH_YEAR; - while (j != year) { - if (year > j) { - i = len_years[isleap(j)]; - ++j; - } else { - --j; - i = -len_years[isleap(j)]; - } - dayoff = oadd(dayoff, eitol(i)); - } - if ((lp = byword(fields[LP_MONTH], mon_names)) == NULL) { - error("invalid month name"); - return; - } - month = lp->l_value; - j = TM_JANUARY; - while (j != month) { - i = len_months[isleap(year)][j]; - dayoff = oadd(dayoff, eitol(i)); - ++j; - } - cp = fields[LP_DAY]; - if (sscanf((char *)cp, scheck(cp, "%d"), &day) != 1 || - day <= 0 || day > len_months[isleap(year)][month]) { - error("invalid day of month"); - return; - } - dayoff = oadd(dayoff, eitol(day - 1)); - if (dayoff < 0 && !tt_signed) { - error("time before zero"); - return; - } - t = (time_t) dayoff * SECSPERDAY; - /* - ** Cheap overflow check. - */ - if (t / SECSPERDAY != dayoff) { - error("time overflow"); - return; - } - tod = gethms(fields[LP_TIME], "invalid time of day", FALSE); - cp = fields[LP_CORR]; - if (strcmp(cp, "+") != 0 && strcmp(cp, "") != 0) { - /* infile() turned "-" into "" */ - error("illegal CORRECTION field on Leap line"); - return; - } - if ((lp = byword(fields[LP_ROLL], leap_types)) == NULL) { - error("illegal Rolling/Stationary field on Leap line"); - return; - } - addleap(tadd(t, tod), *cp == '+', lp->l_value); -} - -static void -inlink(fields, nfields) -register char ** const fields; -const int nfields; -{ - struct link l; - - if (nfields != LINK_FIELDS) { - error("wrong number of fields on Link line"); - return; - } - if (*fields[LF_FROM] == '\0') { - error("blank FROM field on Link line"); - return; - } - if (*fields[LF_TO] == '\0') { - error("blank TO field on Link line"); - return; - } - l.l_filename = filename; - l.l_linenum = linenum; - l.l_from = ecpyalloc(fields[LF_FROM]); - l.l_to = ecpyalloc(fields[LF_TO]); - links = (struct link *) erealloc((char *) links, - (int) ((nlinks + 1) * sizeof *links)); - links[nlinks++] = l; -} - -static void -rulesub(rp, loyearp, hiyearp, typep, monthp, dayp, timep) -register struct rule * const rp; -char * const loyearp; -char * const hiyearp; -char * const typep; -char * const monthp; -char * const dayp; -char * const timep; -{ - register struct lookup const * lp; - register char * cp; - - if ((lp = byword(monthp, mon_names)) == NULL) { - error("invalid month name"); - return; - } - rp->r_month = lp->l_value; - rp->r_todisstd = FALSE; - cp = timep; - if (*cp != '\0') { - cp += strlen(cp) - 1; - switch (lowerit(*cp)) { - case 's': - rp->r_todisstd = TRUE; - *cp = '\0'; - break; - case 'w': - rp->r_todisstd = FALSE; - *cp = '\0'; - break; - } - } - rp->r_tod = gethms(timep, "invalid time of day", FALSE); - /* - ** Year work. - */ - cp = loyearp; - if ((lp = byword(cp, begin_years)) != NULL) switch ((int) lp->l_value) { - case YR_MINIMUM: - rp->r_loyear = min_year; - break; - case YR_MAXIMUM: - rp->r_loyear = max_year; - break; - default: /* "cannot happen" */ - (void) fprintf(stderr, - "%s: panic: Invalid l_value %d\n", - progname, lp->l_value); - (void) exit(EXIT_FAILURE); - } else if (sscanf(cp, scheck(cp, "%d"), &rp->r_loyear) != 1 || - rp->r_loyear < min_year || rp->r_loyear > max_year) { - if (noise) - error("invalid starting year"); - if (rp->r_loyear > max_year) - return; - } - cp = hiyearp; - if ((lp = byword(cp, end_years)) != NULL) switch ((int) lp->l_value) { - case YR_MINIMUM: - rp->r_hiyear = min_year; - break; - case YR_MAXIMUM: - rp->r_hiyear = max_year; - break; - case YR_ONLY: - rp->r_hiyear = rp->r_loyear; - break; - default: /* "cannot happen" */ - (void) fprintf(stderr, - "%s: panic: Invalid l_value %d\n", - progname, lp->l_value); - (void) exit(EXIT_FAILURE); - } else if (sscanf(cp, scheck(cp, "%d"), &rp->r_hiyear) != 1 || - rp->r_hiyear < min_year || rp->r_hiyear > max_year) { - if (noise) - error("invalid ending year"); - if (rp->r_hiyear < min_year) - return; - } - if (rp->r_hiyear < min_year) - return; - if (rp->r_loyear < min_year) - rp->r_loyear = min_year; - if (rp->r_hiyear > max_year) - rp->r_hiyear = max_year; - if (rp->r_loyear > rp->r_hiyear) { - error("starting year greater than ending year"); - return; - } - if (*typep == '\0') - rp->r_yrtype = NULL; - else { - if (rp->r_loyear == rp->r_hiyear) { - error("typed single year"); - return; - } - rp->r_yrtype = ecpyalloc(typep); - } - /* - ** Day work. - ** Accept things such as: - ** 1 - ** last-Sunday - ** Sun<=20 - ** Sun>=7 - */ - if ((lp = byword(dayp, lasts)) != NULL) { - rp->r_dycode = DC_DOWLEQ; - rp->r_wday = lp->l_value; - rp->r_dayofmonth = len_months[1][rp->r_month]; - } else { - if ((cp = strchr(dayp, '<')) != 0) - rp->r_dycode = DC_DOWLEQ; - else if ((cp = strchr(dayp, '>')) != 0) - rp->r_dycode = DC_DOWGEQ; - else { - cp = dayp; - rp->r_dycode = DC_DOM; - } - if (rp->r_dycode != DC_DOM) { - *cp++ = 0; - if (*cp++ != '=') { - error("invalid day of month"); - return; - } - if ((lp = byword(dayp, wday_names)) == NULL) { - error("invalid weekday name"); - return; - } - rp->r_wday = lp->l_value; - } - if (sscanf(cp, scheck(cp, "%d"), &rp->r_dayofmonth) != 1 || - rp->r_dayofmonth <= 0 || - (rp->r_dayofmonth > len_months[1][rp->r_month])) { - error("invalid day of month"); - return; - } - } -} - -static void -convert(val, buf) -const long val; -char * const buf; -{ - register int i; - register long shift; - - for (i = 0, shift = 24; i < 4; ++i, shift -= 8) - buf[i] = val >> shift; -} - -static void -puttzcode(val, fp) -const long val; -FILE * const fp; -{ - char buf[4]; - - convert(val, buf); - (void) fwrite((void *) buf, (size_t) sizeof buf, (size_t) 1, fp); -} - -static void -writezone(name) -const char * const name; -{ - register FILE * fp; - register int i, j; - char fullname[BUFSIZ]; - static struct tzhead tzh; - - if (strlen(directory) + 1 + strlen(name) >= sizeof fullname) { - (void) fprintf(stderr, - "%s: File name %s/%s too long\n", progname, - directory, name); - (void) exit(EXIT_FAILURE); - } - (void) sprintf(fullname, "%s/%s", directory, name); - if ((fp = fopen(fullname, "wb")) == NULL) { - if (mkdirs(fullname) != 0) - (void) exit(EXIT_FAILURE); - if ((fp = fopen(fullname, "wb")) == NULL) { - (void) fprintf(stderr, "%s: Can't create ", progname); - (void) perror(fullname); - (void) exit(EXIT_FAILURE); - } - } - convert(eitol(typecnt), tzh.tzh_ttisstdcnt); - convert(eitol(leapcnt), tzh.tzh_leapcnt); - convert(eitol(timecnt), tzh.tzh_timecnt); - convert(eitol(typecnt), tzh.tzh_typecnt); - convert(eitol(charcnt), tzh.tzh_charcnt); - (void) fwrite((void *) &tzh, (size_t) sizeof tzh, (size_t) 1, fp); - for (i = 0; i < timecnt; ++i) { - j = leapcnt; - while (--j >= 0) - if (ats[i] >= trans[j]) { - ats[i] = tadd(ats[i], corr[j]); - break; - } - puttzcode((long) ats[i], fp); - } - if (timecnt > 0) - (void) fwrite((void *) types, (size_t) sizeof types[0], - (size_t) timecnt, fp); - for (i = 0; i < typecnt; ++i) { - puttzcode((long) gmtoffs[i], fp); - (void) putc(isdsts[i], fp); - (void) putc(abbrinds[i], fp); - } - if (charcnt != 0) - (void) fwrite((void *) chars, (size_t) sizeof chars[0], - (size_t) charcnt, fp); - for (i = 0; i < leapcnt; ++i) { - if (roll[i]) { - if (timecnt == 0 || trans[i] < ats[0]) { - j = 0; - while (isdsts[j]) - if (++j >= typecnt) { - j = 0; - break; - } - } else { - j = 1; - while (j < timecnt && trans[i] >= ats[j]) - ++j; - j = types[j - 1]; - } - puttzcode((long) tadd(trans[i], -gmtoffs[j]), fp); - } else puttzcode((long) trans[i], fp); - puttzcode((long) corr[i], fp); - } - for (i = 0; i < typecnt; ++i) - (void) putc(ttisstds[i], fp); - if (ferror(fp) || fclose(fp)) { - (void) fprintf(stderr, "%s: Write error on ", progname); - (void) perror(fullname); - (void) exit(EXIT_FAILURE); - } -} - -static void -outzone(zpfirst, zonecount) -const struct zone * const zpfirst; -const int zonecount; -{ - register const struct zone * zp; - register struct rule * rp; - register int i, j; - register int usestart, useuntil; - register time_t starttime, untiltime; - register long gmtoff; - register long stdoff; - register int year; - register long startoff; - register int startisdst; - register int startttisstd; - register int type; - char startbuf[BUFSIZ]; - - /* - ** Now. . .finally. . .generate some useful data! - */ - timecnt = 0; - typecnt = 0; - charcnt = 0; - /* - ** Two guesses. . .the second may well be corrected later. - */ - gmtoff = zpfirst->z_gmtoff; - stdoff = 0; - starttime = 0; - startttisstd = FALSE; - for (i = 0; i < zonecount; ++i) { - usestart = i > 0; - useuntil = i < (zonecount - 1); - zp = &zpfirst[i]; - eat(zp->z_filename, zp->z_linenum); - startisdst = -1; - if (zp->z_nrules == 0) { - type = addtype(oadd(zp->z_gmtoff, zp->z_stdoff), - zp->z_format, zp->z_stdoff != 0, - startttisstd); - if (usestart) - addtt(starttime, type); - gmtoff = zp->z_gmtoff; - stdoff = zp->z_stdoff; - } else for (year = min_year; year <= max_year; ++year) { - if (useuntil && year > zp->z_untilrule.r_hiyear) - break; - /* - ** Mark which rules to do in the current year. - ** For those to do, calculate rpytime(rp, year); - */ - for (j = 0; j < zp->z_nrules; ++j) { - rp = &zp->z_rules[j]; - eats(zp->z_filename, zp->z_linenum, - rp->r_filename, rp->r_linenum); - rp->r_todo = year >= rp->r_loyear && - year <= rp->r_hiyear && - yearistype(year, rp->r_yrtype); - if (rp->r_todo) - rp->r_temp = rpytime(rp, year); - } - for ( ; ; ) { - register int k; - register time_t jtime, ktime; - register long offset; - char buf[BUFSIZ]; - - if (useuntil) { - /* - ** Turn untiltime into GMT - ** assuming the current gmtoff and - ** stdoff values. - */ - offset = gmtoff; - if (!zp->z_untilrule.r_todisstd) - offset = oadd(offset, stdoff); - untiltime = tadd(zp->z_untiltime, - -offset); - } - /* - ** Find the rule (of those to do, if any) - ** that takes effect earliest in the year. - */ - k = -1; -#ifdef lint - ktime = 0; -#endif /* defined lint */ - for (j = 0; j < zp->z_nrules; ++j) { - rp = &zp->z_rules[j]; - if (!rp->r_todo) - continue; - eats(zp->z_filename, zp->z_linenum, - rp->r_filename, rp->r_linenum); - offset = gmtoff; - if (!rp->r_todisstd) - offset = oadd(offset, stdoff); - jtime = rp->r_temp; - if (jtime == min_time || - jtime == max_time) - continue; - jtime = tadd(jtime, -offset); - if (k < 0 || jtime < ktime) { - k = j; - ktime = jtime; - } - } - if (k < 0) - break; /* go on to next year */ - rp = &zp->z_rules[k]; - rp->r_todo = FALSE; - if (useuntil && ktime >= untiltime) - break; - if (usestart) { - if (ktime < starttime) { - stdoff = rp->r_stdoff; - startoff = oadd(zp->z_gmtoff, - rp->r_stdoff); - (void) sprintf(startbuf, - zp->z_format, - rp->r_abbrvar); - startisdst = - rp->r_stdoff != 0; - continue; - } - if (ktime != starttime && - startisdst >= 0) -addtt(starttime, addtype(startoff, startbuf, startisdst, startttisstd)); - usestart = FALSE; - } - eats(zp->z_filename, zp->z_linenum, - rp->r_filename, rp->r_linenum); - (void) sprintf(buf, zp->z_format, - rp->r_abbrvar); - offset = oadd(zp->z_gmtoff, rp->r_stdoff); - type = addtype(offset, buf, rp->r_stdoff != 0, - rp->r_todisstd); - if (timecnt != 0 || rp->r_stdoff != 0) - addtt(ktime, type); - gmtoff = zp->z_gmtoff; - stdoff = rp->r_stdoff; - } - } - /* - ** Now we may get to set starttime for the next zone line. - */ - if (useuntil) { - starttime = tadd(zp->z_untiltime, - -gmtoffs[types[timecnt - 1]]); - startttisstd = zp->z_untilrule.r_todisstd; - } - } - writezone(zpfirst->z_name); -} - -static void -addtt(starttime, type) -const time_t starttime; -const int type; -{ - if (timecnt != 0 && type == types[timecnt - 1]) - return; /* easy enough! */ - if (timecnt >= TZ_MAX_TIMES) { - error("too many transitions?!"); - (void) exit(EXIT_FAILURE); - } - ats[timecnt] = starttime; - types[timecnt] = type; - ++timecnt; -} - -static int -addtype(gmtoff, abbr, isdst, ttisstd) -const long gmtoff; -const char * const abbr; -const int isdst; -const int ttisstd; -{ - register int i, j; - - /* - ** See if there's already an entry for this zone type. - ** If so, just return its index. - */ - for (i = 0; i < typecnt; ++i) { - if (gmtoff == gmtoffs[i] && isdst == isdsts[i] && - strcmp(abbr, &chars[abbrinds[i]]) == 0 && - ttisstd == ttisstds[i]) - return i; - } - /* - ** There isn't one; add a new one, unless there are already too - ** many. - */ - if (typecnt >= TZ_MAX_TYPES) { - error("too many local time types"); - (void) exit(EXIT_FAILURE); - } - gmtoffs[i] = gmtoff; - isdsts[i] = isdst; - ttisstds[i] = ttisstd; - - for (j = 0; j < charcnt; ++j) - if (strcmp(&chars[j], abbr) == 0) - break; - if (j == charcnt) - newabbr(abbr); - abbrinds[i] = j; - ++typecnt; - return i; -} - -static void -addleap(t, positive, rolling) -const time_t t; -const int positive; -const int rolling; -{ - register int i, j; - - if (leapcnt >= TZ_MAX_LEAPS) { - error("too many leap seconds"); - (void) exit(EXIT_FAILURE); - } - for (i = 0; i < leapcnt; ++i) - if (t <= trans[i]) { - if (t == trans[i]) { - error("repeated leap second moment"); - (void) exit(EXIT_FAILURE); - } - break; - } - for (j = leapcnt; j > i; --j) { - trans[j] = trans[j-1]; - corr[j] = corr[j-1]; - roll[j] = roll[j-1]; - } - trans[i] = t; - corr[i] = (positive ? 1L : -1L); - roll[i] = rolling; - ++leapcnt; -} - -static void -adjleap() -{ - register int i; - register long last = 0; - - /* - ** propagate leap seconds forward - */ - for (i = 0; i < leapcnt; ++i) { - trans[i] = tadd(trans[i], last); - last = corr[i] += last; - } -} - -static int -yearistype(year, type) -const int year; -const char * const type; -{ - char buf[BUFSIZ]; - int result; - - if (type == NULL || *type == '\0') - return TRUE; - if (strcmp(type, "uspres") == 0) - return (year % 4) == 0; - if (strcmp(type, "nonpres") == 0) - return (year % 4) != 0; - (void) sprintf(buf, "yearistype %d %s", year, type); - result = system(buf); - if (result == 0) - return TRUE; - if (result == (1 << 8)) - return FALSE; - error("Wild result from command execution"); - (void) fprintf(stderr, "%s: command was '%s', result was %d\n", - progname, buf, result); - for ( ; ; ) - (void) exit(EXIT_FAILURE); -} - -static int -lowerit(a) -const int a; -{ - return (isascii(a) && isupper(a)) ? tolower(a) : a; -} - -static int -ciequal(ap, bp) /* case-insensitive equality */ -register const char * ap; -register const char * bp; -{ - while (lowerit(*ap) == lowerit(*bp++)) - if (*ap++ == '\0') - return TRUE; - return FALSE; -} - -static int -itsabbr(abbr, word) -register const char * abbr; -register const char * word; -{ - if (lowerit(*abbr) != lowerit(*word)) - return FALSE; - ++word; - while (*++abbr != '\0') - do if (*word == '\0') - return FALSE; - while (lowerit(*word++) != lowerit(*abbr)); - return TRUE; -} - -static const struct lookup * -byword(word, table) -register const char * const word; -register const struct lookup * const table; -{ - register const struct lookup * foundlp; - register const struct lookup * lp; - - if (word == NULL || table == NULL) - return NULL; - /* - ** Look for exact match. - */ - for (lp = table; lp->l_word != NULL; ++lp) - if (ciequal(word, lp->l_word)) - return lp; - /* - ** Look for inexact match. - */ - foundlp = NULL; - for (lp = table; lp->l_word != NULL; ++lp) - if (itsabbr(word, lp->l_word)) - if (foundlp == NULL) - foundlp = lp; - else return NULL; /* multiple inexact matches */ - return foundlp; -} - -static char ** -getfields(cp) -register char * cp; -{ - register char * dp; - register char ** array; - register int nsubs; - - if (cp == NULL) - return NULL; - array = (char **) emalloc((int) ((strlen(cp) + 1) * sizeof *array)); - nsubs = 0; - for ( ; ; ) { - while (isascii(*cp) && isspace(*cp)) - ++cp; - if (*cp == '\0' || *cp == '#') - break; - array[nsubs++] = dp = cp; - do { - if ((*dp = *cp++) != '"') - ++dp; - else while ((*dp = *cp++) != '"') - if (*dp != '\0') - ++dp; - else error("Odd number of quotation marks"); - } while (*cp != '\0' && *cp != '#' && - (!isascii(*cp) || !isspace(*cp))); - if (isascii(*cp) && isspace(*cp)) - ++cp; - *dp = '\0'; - } - array[nsubs] = NULL; - return array; -} - -static long -oadd(t1, t2) -const long t1; -const long t2; -{ - register long t; - - t = t1 + t2; - if (t2 > 0 && t <= t1 || t2 < 0 && t >= t1) { - error("time overflow"); - (void) exit(EXIT_FAILURE); - } - return t; -} - -static time_t -tadd(t1, t2) -const time_t t1; -const long t2; -{ - register time_t t; - - if (t1 == max_time && t2 > 0) - return max_time; - if (t1 == min_time && t2 < 0) - return min_time; - t = t1 + t2; - if (t2 > 0 && t <= t1 || t2 < 0 && t >= t1) { - error("time overflow"); - (void) exit(EXIT_FAILURE); - } - return t; -} - -/* -** Given a rule, and a year, compute the date - in seconds since January 1, -** 1970, 00:00 LOCAL time - in that year that the rule refers to. -*/ - -static time_t -rpytime(rp, wantedy) -register const struct rule * const rp; -register const int wantedy; -{ - register int y, m, i; - register long dayoff; /* with a nod to Margaret O. */ - register time_t t; - - dayoff = 0; - m = TM_JANUARY; - y = EPOCH_YEAR; - while (wantedy != y) { - if (wantedy > y) { - i = len_years[isleap(y)]; - ++y; - } else { - --y; - i = -len_years[isleap(y)]; - } - dayoff = oadd(dayoff, eitol(i)); - } - while (m != rp->r_month) { - i = len_months[isleap(y)][m]; - dayoff = oadd(dayoff, eitol(i)); - ++m; - } - i = rp->r_dayofmonth; - if (m == TM_FEBRUARY && i == 29 && !isleap(y)) { - if (rp->r_dycode == DC_DOWLEQ) - --i; - else { - error("use of 2/29 in non leap-year"); - (void) exit(EXIT_FAILURE); - } - } - --i; - dayoff = oadd(dayoff, eitol(i)); - if (rp->r_dycode == DC_DOWGEQ || rp->r_dycode == DC_DOWLEQ) { - register long wday; - -#define LDAYSPERWEEK ((long) DAYSPERWEEK) - wday = eitol(EPOCH_WDAY); - /* - ** Don't trust mod of negative numbers. - */ - if (dayoff >= 0) - wday = (wday + dayoff) % LDAYSPERWEEK; - else { - wday -= ((-dayoff) % LDAYSPERWEEK); - if (wday < 0) - wday += LDAYSPERWEEK; - } - while (wday != eitol(rp->r_wday)) - if (rp->r_dycode == DC_DOWGEQ) { - dayoff = oadd(dayoff, (long) 1); - if (++wday >= LDAYSPERWEEK) - wday = 0; - ++i; - } else { - dayoff = oadd(dayoff, (long) -1); - if (--wday < 0) - wday = LDAYSPERWEEK - 1; - --i; - } - if (i < 0 || i >= len_months[isleap(y)][m]) { - error("no day in month matches rule"); - (void) exit(EXIT_FAILURE); - } - } - if (dayoff < 0 && !tt_signed) { - if (wantedy == rp->r_loyear) - return min_time; - error("time before zero"); - (void) exit(EXIT_FAILURE); - } - t = (time_t) dayoff * SECSPERDAY; - /* - ** Cheap overflow check. - */ - if (t / SECSPERDAY != dayoff) { - if (wantedy == rp->r_hiyear) - return max_time; - if (wantedy == rp->r_loyear) - return min_time; - error("time overflow"); - (void) exit(EXIT_FAILURE); - } - return tadd(t, rp->r_tod); -} - -static void -newabbr(string) -const char * const string; -{ - register int i; - - i = strlen(string) + 1; - if (charcnt + i >= TZ_MAX_CHARS) { - error("too many, or too long, time zone abbreviations"); - (void) exit(EXIT_FAILURE); - } - (void) strcpy(&chars[charcnt], string); - charcnt += eitol(i); -} - -static int -mkdirs(name) -char * const name; -{ - register char * cp; - - if ((cp = name) == NULL || *cp == '\0') - return 0; - while ((cp = strchr(cp + 1, '/')) != 0) { - *cp = '\0'; - if (!itsdir(name)) { - /* - ** It doesn't seem to exist, so we try to create it. - */ - if (mkdir(name, 0755) != 0) { - (void) fprintf(stderr, - "%s: Can't create directory ", - progname); - (void) perror(name); - return -1; - } - } - *cp = '/'; - } - return 0; -} - -static long -eitol(i) -const int i; -{ - long l; - - l = i; - if (i < 0 && l >= 0 || i == 0 && l != 0 || i > 0 && l <= 0) { - (void) fprintf(stderr, "%s: %d did not sign extend correctly\n", - progname, i); - (void) exit(EXIT_FAILURE); - } - return l; -} - -/* -** UNIX is a registered trademark of AT&T. -*/ -- cgit v1.1