!
! Calendar Routines
!
! Inputs Y,M,D Outputs: JD Uses: YY,MM
YMD'TO'JD:
! Start year in March...
MM = M - 2: YY = Y : IF MM<1 THEN MM = MM+12 : YY = YY-1
! Ok for 1901 - 2099 AD
JD = INT( YY*1461/4) + INT( MM*367/12) + D + 1721074
! Ok for 0000 - 999999 AD
JD = JD - INT(( INT( YY/100 ) +1 ) * 3/4) + 15
RETURN
! Inputs: JD Outputs: Y,M,D Uses: JD2
!
JD'TO'YMD:
JD2 = JD
JD = JD2 + 30 : CALL JD'TO'YMD'TRY : IF D>0 RETURN
JD = JD2 : CALL JD'TO'YMD'TRY : RETURN
JD'TO'YMD'TRY:
M = INT(( JD-1721075)/365.2425*12) ! Months since Jan 16, 0 AD
Y = INT(M/12) : M=M-12*Y+1 : D=0 : CALL YMD'TO'JD
D = JD2 - JD : JD = JD2
RETURN
! Inputs: JD Outputs: DOW( 0=Monday, 6 = Sunday)
!
JD'TO'DOW:
DOW = JD - INT(JD/7)*7 ! DAY OF WEEK
RETURN