DECLARE FUNCTION JD! (Y%, M%, DT!)
REM Перевод даты григорианского календаря
REM в юлианскую дату (алгоритм Меёса)
CLS
INPUT "Задайте год григорианского календаря : ", Y%
INPUT "Задайте месяц григорианского календаря : ", M%
INPUT "Задайте день и время : ", DT
PRINT USING "##### ### ###.#"; Y%; M%; DT;
jd1 = JD(Y%, M%, DT)
PRINT USING " JD =#########.#####"; jd1
END
FUNCTION JD (Y%, M%, DT)
' Y - григорианский год [-4713,9999]
' M - григорианский месяц [1,12]
' целая часть DT - день [1,31]
' дробная часть DT - время, прошедшее
' от начала текущего дня [.0,.99999]
' Возвращаемое значение - юлианская дата
' Целая часть JD - число дней, прошедших
' от 1 января 4713 года до новой эры
' Дробная часть JD - время, прошедшее
' после 12 часов полудня дня JD
b% = 0: yy% = Y%: mm% = M%
IF M% < 3 THEN yy% = yy% - 1: mm% = mm% + 12
a% = yy% \ 100
IF Y% + M% / 100! + DT / 10000 > 1582.1015# THEN
b% = b% + 2 - a% + (a% \ 4)
END IF
c& = INT(365.25 * yy%)
IF yy% < 0 THEN c& = INT(365.25 * yy% - .75)
JD = c& + INT(30.6001 * (mm% + 1)) + DT + 1720994.5# + b%
END FUNCTION