Shank's International Atlas, with GB-Eire as a test case

Paul Eggert eggert at twinsun.com
Fri Oct 15 01:02:54 UTC 1993


I just found the book

	Thomas G. Shanks
	The International Atlas (3rd ed)
	San Diego: ACS Publications, Inc. (1991)
	xx + 428 pp.
	ISBN 0-935127-16-X, $36, order phone: +1 800 888 9983

which lists detailed historical time zone data, plus latitude and
longitude, for places all over the world.  For example, for Germany it
lists over 20 pages of data in fine print, of which one page contains
seven different historical time zone regions and the complete history
of all GMT offsets in each region since the 1890s (when Germany started
using standard time).  There's a separate atlas (which I don't have)
for US time zone data.  ACS Publications serves astrologers, who seem
to be the folks who care most about historical time zone data.  (You
get a 20% discount on your second order if you tell them your sun sign!)

To see if it was good stuff, I checked Shanks's book vs the tz1993d
rules for Great Britain and Eire.  In nearly every case where Shanks
disagreed with tz1993d, it seems to me that Shanks is more likely to be
correct.  The discrepancies included the following:

  * transcription errors in 1916, 1923, and 1968, where the tz1993d data
  doesn't match Peter Ilieve's transcription of the UK Government paper
  "Summer Time: A Consultation Document".

  * Shanks says summer time began in 1924 in 13 April, which seems far
  more likely to be correct than Ilieve's 30 April, since 30 April 1924
  was a Wednesday.

  * Shanks says Eire did not observe war time during World War II,
  which seems likely since Eire was neutral.  He says that Eire stayed
  an hour ahead of GMT through the war, and then had its own
  summer time scheme until 1948 when it reverted to GB time.

  * Shanks says Eire was 25 minutes behind GMT until 1916, switched
  to 35 minutes ahead of GMT during summer 1916, and then switched
  the clocks twice (!) on the morning of 1 Oct 1916, first to 1 hour
  ahead of GMT, then (35 minutes later) to GMT.  This is the only
  hard-to-believe part of Shanks's data, but it's just crazy enough
  to be true.

That last bit exposed another zdump bug: if the clock changes more than
once in the same 12-hour period it sometimes misses some of the
changes.

I doubt whether Shanks is infallible -- his data for Israel looks
funny, and he doesn't agree with the stories I've heard about the
Soviet Union in the 1930s -- but it does seem like a good source,
at least for those parts of the world where horoscopes are popular.

Here's a proposed patch.

===================================================================
RCS file: RCS/zdump.c,v
retrieving revision 7.7
retrieving revision 7.7.1.1
diff -c -r7.7 -r7.7.1.1
*** zdump.c	1993/09/06 01:21:19	7.7
--- zdump.c	1993/10/15 00:18:49	7.7.1.1
***************
*** 82,88 ****
  
  static char *	abbr();
  static long	delta();
! static void	hunt();
  static int	longest;
  static char *	progname;
  static void	show();
--- 82,88 ----
  
  static char *	abbr();
  static long	delta();
! static time_t	hunt();
  static int	longest;
  static char *	progname;
  static void	show();
***************
*** 177,183 ****
  			if (delta(&newtm, &tm) != (newt - t) ||
  				newtm.tm_isdst != tm.tm_isdst ||
  				strcmp(abbr(&newtm), buf) != 0) {
! 					hunt(argv[i], t, newt);
  					(void) strncpy(buf, abbr(&newtm),
  						(sizeof buf) - 1);
  			}
--- 177,184 ----
  			if (delta(&newtm, &tm) != (newt - t) ||
  				newtm.tm_isdst != tm.tm_isdst ||
  				strcmp(abbr(&newtm), buf) != 0) {
! 					newt = hunt(argv[i], t, newt);
! 					newtm = *localtime(&newt);
  					(void) strncpy(buf, abbr(&newtm),
  						(sizeof buf) - 1);
  			}
***************
*** 208,214 ****
  		;
  }
  
! static void
  hunt(name, lot, hit)
  char *	name;
  time_t	lot;
--- 209,215 ----
  		;
  }
  
! static time_t
  hunt(name, lot, hit)
  char *	name;
  time_t	lot;
***************
*** 237,242 ****
--- 238,244 ----
  	}
  	show(name, lot, TRUE);
  	show(name, hit, TRUE);
+ 	return hit;
  }
  
  /*
===================================================================
RCS file: RCS/europe,v
retrieving revision 7.5
retrieving revision 7.5.1.1
diff -c -r7.5 -r7.5.1.1
*** europe	1993/09/06 01:21:38	7.5
--- europe	1993/10/15 00:19:31	7.5.1.1
***************
*** 7,12 ****
--- 7,16 ----
  # ahead and edit the file (and please send any changes to
  # ado at ncifcrf.gov for general use in the future).
  
+ # A good source for time zone historical data outside the U.S. is
+ # Thomas G. Shanks, The International Atlas (3rd edition),
+ # San Diego: ACS Publications, Inc. (1991).
+ 
  ###############################################################################
  
  # United Kingdom
***************
*** 52,58 ****
  # 1921	3 April		3 October
  # 1922	26 March	8 October
  # 1923	22 April	16 September
! # 1924	30 April	21 September
  # 1925 to	3rd Sunday	1st Sunday
  # 1938	in April	in October
  #
--- 56,62 ----
  # 1921	3 April		3 October
  # 1922	26 March	8 October
  # 1923	22 April	16 September
! # 1924	13 April	21 September
  # 1925 to	3rd Sunday	1st Sunday
  # 1938	in April	in October
  #
***************
*** 120,125 ****
--- 124,139 ----
  #
  # These dates agree with the ones from Whitaker's Almanac for 1960--87. . .
  
+ # From Paul Eggert (October 14, 1993)
+ #
+ # I changed the date `30 April 1924' to `13 April 1924' in the above table
+ # to fix what must be transcription error, since 30 April is not a Sunday,
+ # and Shanks gives 13 April which is a Sunday.
+ #
+ # The rules for Eire below are taken from Shanks, and reflect his claim that
+ # Eire changed the clock twice on 1 Oct 1916.  I invented `IST' and `IDT' as
+ # abbreviations for Eire's standard and daylight time before 1 Oct 1916.
+ 
  # From Arthur David Olson (January 19, 1989):
  #
  # A source at the British Information Office in New York avers that it's
***************
*** 210,216 ****
  
  # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
  # 1916 to 1925--irregular
! Rule	GB-Eire	1916	only	-	Mar	21	2:00s	1:00	BST
  Rule	GB-Eire	1916	only	-	Oct	1	2:00s	0	GMT
  Rule	GB-Eire	1917	only	-	Apr	8	2:00s	1:00	BST
  Rule	GB-Eire	1917	only	-	Sep	17	2:00s	0	GMT
--- 224,230 ----
  
  # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
  # 1916 to 1925--irregular
! Rule	GB-Eire	1916	only	-	May	21	2:00s	1:00	BST
  Rule	GB-Eire	1916	only	-	Oct	1	2:00s	0	GMT
  Rule	GB-Eire	1917	only	-	Apr	8	2:00s	1:00	BST
  Rule	GB-Eire	1917	only	-	Sep	17	2:00s	0	GMT
***************
*** 225,232 ****
  Rule	GB-Eire	1922	only	-	Mar	26	2:00s	1:00	BST
  Rule	GB-Eire	1922	only	-	Oct	8	2:00s	0	GMT
  Rule	GB-Eire	1923	only	-	Apr	22	2:00s	1:00	BST
! Rule	GB-Eire	1923	only	-	Oct	16	2:00s	0	GMT
! Rule	GB-Eire	1924	only	-	Apr	30	2:00s	1:00	BST
  Rule	GB-Eire	1924	only	-	Sep	21	2:00s	0	GMT
  # 1925 to 1939 start--regular
  Rule	GB-Eire	1925	1939	-	Apr	Sun>=15	2:00s	1:00	BST
--- 239,246 ----
  Rule	GB-Eire	1922	only	-	Mar	26	2:00s	1:00	BST
  Rule	GB-Eire	1922	only	-	Oct	8	2:00s	0	GMT
  Rule	GB-Eire	1923	only	-	Apr	22	2:00s	1:00	BST
! Rule	GB-Eire	1923	only	-	Sep	16	2:00s	0	GMT
! Rule	GB-Eire	1924	only	-	Apr	13	2:00s	1:00	BST
  Rule	GB-Eire	1924	only	-	Sep	21	2:00s	0	GMT
  # 1925 to 1939 start--regular
  Rule	GB-Eire	1925	1939	-	Apr	Sun>=15	2:00s	1:00	BST
***************
*** 266,272 ****
  Rule	GB-Eire	1960	only	-	Apr	10	2:00s	1:00	BST
  Rule	GB-Eire	1961	1963	-	Mar	lastSun	2:00s	1:00	BST
  Rule	GB-Eire	1964	1967	-	Mar	Sun>=19	2:00s	1:00	BST
- Rule	GB-Eire	1968	only	-	Feb	18	2:00s	1:00	BST
  Rule	GB-Eire	1972	1980	-	Mar	Sun>=16	2:00s	1:00	BST
  # 1953 to 1980, ending rules
  Rule	GB-Eire	1953	1960	-	Oct	Sun>=1	2:00s	0	GMT
--- 280,285 ----
***************
*** 278,284 ****
  Rule	GB-Eire	1981	max	-	Oct	Sun>=23	1:00s	0	GMT
  
  # Zone	NAME		GMTOFF	RULES/SAVE	FORMAT	[UNTIL]
! Zone	GB-Eire		0:00	GB-Eire		%s	1968 Oct 27 2:00s
  			1:00	-		BST	1971 Oct 31 2:00s
  			0:00	GB-Eire		%s
  
--- 291,309 ----
  Rule	GB-Eire	1981	max	-	Oct	Sun>=23	1:00s	0	GMT
  
  # Zone	NAME		GMTOFF	RULES/SAVE	FORMAT	[UNTIL]
! Zone	GB		0:00	-		GMT	1916 May 21 2:00s
! 			0:00	GB-Eire		%s	1968 Feb 18 2:00s
! 			1:00	-		BST	1971 Oct 31 2:00s
! 			0:00	GB-Eire		%s
! Zone	Eire		-0:25	-		IST	1916 May 21 2:00
! 			-0:25	1:00		IDT	1916 Oct  1 2:00
! 			0:00	1:00		BST	1916 Oct  1 3:00
! 			0:00	GB-Eire		%s	1940 Feb 25 2:00
! 			0:00	1:00		BST	1946 Oct  6 2:00
! 			0:00	-		GMT	1947 Mar 16 2:00
! 			0:00	1:00		BST	1947 Nov  2 2:00
! 			0:00	-		GMT	1948 Apr 18 2:00
! 			0:00	GB-Eire		%s	1968 Feb 18 2:00s
  			1:00	-		BST	1971 Oct 31 2:00s
  			0:00	GB-Eire		%s
  



More information about the tz mailing list