! ! 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