1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-17 16:53:23 +00:00

Updated daylight savings time calculations for the US to reflect current rules.

In 2017, the rules changed from a start date of the 1st Sunday in April to the 2nd Sunday in March.
The end date changed from the last Sunday in October to the 1st Sunday in November.
This commit is contained in:
Eric Swenson 2024-03-13 14:30:26 -07:00
parent 505ad4864c
commit 1539d6b98c

View File

@ -228,24 +228,24 @@ IFDEF DSTEU,[IFN DSTEU,[
;; else it's obviously DST
]]
.ELSE [
CAML A,[<APR 1>*SPD+7200.] ;IF BEFORE 2AM APR 1,
CAML A,[<OCT 31.>*SPD+3600.] ;OR IF AFTER 1AM STANDARD TIME OCT 31,
CAML A,[<MAR <1+6>>*SPD+7200.] ;IF BEFORE 2AM MAR 7,
CAML A,[<NOV 1>*SPD+3600.] ;OR IF AFTER 1AM STANDARD TIME NOV 1,
POPJ P, ;THEN OBVIOUSLY STANDARD TIME IS IN EFFECT
CAML A,[<APR 7>*SPD+7200.] ;IF BEFORE 2AM APR 7 STANDARD TIME,
CAML A,[<OCT 25.>*SPD+3600.] ;OR IF AFTER 1AM STANDARD TIME OCTOBER 25,
CAML A,[<MAR <7+6>>*SPD+7200.] ;IF BEFORE 2AM MAR 13 STANDARD TIME,
CAML A,[<NOV <1+6>>*SPD+3600.] ;OR IF AFTER 1AM STANDARD TIME NOV 7,
JRST GLPDT3 ;THEN NOT OBVIOUS
]
CRDDST: TLO E,100000 ;DAYLIGHT SAVINGS TIME, SET BIT IN E
ADDI A,3600. ;CONTINUE TO LOCALIZE THE TIME THAT WILL BE RETURNED
POPJ P,
;IT IS NOW SOMETIME DURING THE WEEKS IN APR AND OCTOBER
;IT IS NOW SOMETIME DURING THE WEEKS IN MAR AND NOV
;WHEN IT MAY BE EITHER STANDARD OR DAYLIGHT SAVINGS TIME
GLPDT3: PUSH P,A ;SAVE # SECS
CAMG A,[JUL*SPD] ;IF NOT YET JULY,
TDZA D,D ;THEN IT MUST BE APR, SET INDEX
MOVEI D,1 ;OCTOBER, SET INDEX
TDZA D,D ;THEN IT MUST BE MAR, SET INDEX
MOVEI D,1 ;NOV, SET INDEX
SUB A,CRDSB(D) ;COMPENSATE FOR 2AM OR 1AM
IDIVI A,SPD ;FLUSH SECONDS, LEAVE ONLY DAYS (IT LOOKS LIKE A LEAP YEAR, REMEMBER)
LDB C,[270300,,E] ;GET DAY OF WEEK OF BEGINNING OF YEAR IN C
@ -271,11 +271,11 @@ CRDTST: CAIGE A,<MAR <31.-6>> ;First possible last Sunday in March
CAIL A,<OCT <31.-6>> ;First possible last Sunday in October
]]
.ELSE [
CRDSB: 7200. ;IN APR CHANGES AT 2AM EST
3600. ;IN OCTOBER CHANGES AT 1AM EST
CRDSB: 7200. ;IN MAR CHANGES AT 2AM EST
3600. ;IN NOV CHANGES AT 1AM EST
CRDTST: CAIGE A,<APR 1>
CAIL A,<OCT 25.>
CRDTST: CAIGE A,<MAR 7>
CAIL A,<NOV 7>
]
;IF LEAP YEAR THEN SET BIT 4.8 OF E
;IF NOT LEAP YEAR THEN IF AFTER FEB 28 THEN SET BIT 4.9 OF E AND ADD SPD TO A