edp@jareth.enet.dec.com (Eric Postpischil (Always mount a scratch monkey.)) (11/20/90)
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