Path: utzoo!utgpu!watserv1!watmath!att!dptg!ulysses!andante!princeton!udel!haven!decuac!bacchus.pa.dec.com!shlump.nac.dec.com!jareth.enet.dec.com!edp From: edp@jareth.enet.dec.com (Eric Postpischil (Always mount a scratch monkey.)) Newsgroups: comp.sys.handhelds Subject: Daylight Savings Time transitions Message-ID: <17482@shlump.nac.dec.com> Date: 20 Nov 90 15:56:48 GMT Sender: newsdaemon@shlump.nac.dec.com Reply-To: edp@jareth.enet.dec.com (Eric Postpischil (Always mount a scratch monkey.)) Organization: Digital Equipment Corporation Lines: 60 A while ago, I posted modified versions of James H. Cloos' alarms for Daylight Savings/Standard Time transitions. Since then, one of the dates has passed. The alarms were originally presented as two lists to pass to STOALARM. Anybody using those lists now would set a past-due alarm. Here is a program that calculates the next dates and sets the alarms appropriately. Once set, the alarms repeat themselves. These use the current United States scheme -- last Sunday in November, first in April. The program is: %%HP: T(3)A(R)F(.); \<< { 28.10199 2 \<< DUP RCLALARM SWAP DELALARM 1 11.11 -11 DATE+ .000001 + DUP 1.01195 DDAYS -7 MOD DATE+ PUT STOALARM DROP -29491200 CLKADJ OFF \>> 0 } 11.11 -11 DATE+ -7 { 7.041991 2 \<< DUP RCLALARM SWAP DELALARM 1 4.04 -3 DATE+ .000001 + DUP 1.01195 DDAYS 7 MOD DATE+ PUT STOALARM DROP 29491200 CLKADJ OFF \>> 0 } 4.04 -3 DATE+ 7 0 1 START \-> D M \<< 1 D DUP 1.01195 DDAYS M MOD DATE+ IF DUP DATE DDAYS 0 \>= THEN DROP D .000001 + DUP 1.01195 DDAYS M MOD DATE+ END PUT STOALARM DROP \>> NEXT \>> To use these routines with the clock adjustment routines I posted previously, change "29491200 CLKADJ" to "PATH HOME [path to time directory] 1_h ADJT EVAL", and use -1_h for the negative adjustment. -- edp (Eric Postpischil) "Always mount a scratch monkey." edp@jareth.enet.dec.com