DECLARE FUNCTION JD! (Y%, M%, DT!)
DECLARE FUNCTION WeekDay! (Y%, M%, D%)
REM Определение дня недели
CLS
INPUT "Задайте год григорианского календаря : ", Y%
INPUT "Задайте месяц григорианского календаря : ", M%
INPUT "Задайте день : ", D%
PRINT "день недели = "; WeekDay(Y%, M%, D%)
END
FUNCTION JD (Y%, M%, DT)
DIM a AS INTEGER, b AS INTEGER, mm AS INTEGER, yy AS INTEGER
DIM c AS LONG
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
FUNCTION WeekDay (Y%, M%, D%)
' Определение дня недели
' Y - григорианский год
' M - григорианский месяц (1 - 12)
' D - день (1 - 31)
' Возвращаемое значение :
' 0 - воскр., 1 - понед., 2 - вторник,...
WeekDay = INT(JD(Y%, M%, D% + 1.5)) MOD 7
END FUNCTION