ВНИМАНИЕ! На форуме начался конкурс - астрофотография месяца ИЮНЬ!
0 Пользователей и 1 Гость просматривают эту тему.
Procedure JD8 (IY : LONGINT; IM : INTEGER; D : DOUBLE; Var JD : Double ); VAR JN, IYY, IMM, IA, IB, IS : LONGINT; GRDAT : DOUBLE; BEGIN IF ( IM > 2 ) THEN BEGIN IYY := IY; IMM := IM + 1; END ELSE BEGIN IYY := IY - 1; IMM := IM + 13; END; IF ( IYY = 0 ) THEN IS := 1 ELSE BEGIN IS := TRUNC ( IYY / ABS ( IYY ) ) ; IYY := ABS ( IYY ); END; GRDAT := IYY * 10000.0 + IMM * 100.0 + D; IF ( IS > 0 ) THEN BEGIN IB := 0; IF ( GRDAT >= 15821015.0 ) THEN BEGIN IA := TRUNC ( IYY / 100 ) * IS; IB := 2 - IA + TRUNC ( ABS ( IA ) / 4 ) * IS; END; JD := 1720994.5 + D + TRUNC ( 365.25 * IYY ) + TRUNC ( 30.6001 * IMM ) + IB; END ELSE JD := 1720994.5 + D - TRUNC ( 365.25 * IYY + 0.75 ) + TRUNC ( 30.6001 * IMM ) ; END;
2Анатолий – программка то на Паскале
Просто не Фортран, а Паскаль.
Procedure DAYJD ( RJD : DOUBLE ; VAR IYEAR : LongInt ; VAR MON : LongInt ; VAR DAY : DOUBLE ) ; VAR JD, F : DOUBLE ; IZ, IAL, IAL4, IA, IB, IC, ID, IE : LONGINT ; BEGIN JD := RJD + 0.5 ; IZ := TRUNC ( JD ); F := JD - IZ; IF ( IZ < 2299161 ) THEN IA := IZ ELSE BEGIN IAL := TRUNC ( ( IZ - 1867216.25 ) / 36524.25 ); IAL4 := TRUNC ( IAL / 4 ); IA := IZ + 1 + IAL - IAL4; END; IB := IA + 1524; IC := TRUNC ( ( IB - 122.1 ) / 365.25 ); ID := TRUNC ( 365.25 * IC ); IE := TRUNC ( ( IB - ID ) / 30.6001 ); DAY := F + IB - ID - TRUNC ( IE * 30.6001 ); IF ( IE <= 13 ) THEN MON := IE - 1 ELSE MON := IE - 13; IF ( MON > 2 ) THEN IYEAR := IC - 4716 ELSE IYEAR := IC - 4715; END;