44 lines
571 B
Plaintext
44 lines
571 B
Plaintext
REM Long year
|
|
CLS
|
|
PRINT "**** List of ISO long years ****"
|
|
PRINT "Start year";
|
|
INPUT S
|
|
PRINT "End year";
|
|
INPUT E
|
|
PRINT
|
|
FOR Y = S TO E
|
|
GOSUB CALCLY:
|
|
IF LY <> 0 THEN
|
|
PRINT Y;
|
|
ENDIF
|
|
NEXT Y
|
|
PRINT
|
|
END
|
|
|
|
CALCLY:
|
|
REM Nonzero if Y is long
|
|
LY = 0
|
|
AY = Y
|
|
GOSUB CALCWD:
|
|
IF WD = 4 THEN
|
|
LY = -1
|
|
ENDIF
|
|
AY = Y - 1
|
|
GOSUB CALCWD:
|
|
IF WD = 3 THEN
|
|
LY = -1
|
|
ENDIF
|
|
RETURN
|
|
|
|
CALCWD:
|
|
REM Weekday of AY-12-31, 0 = Sunday
|
|
WD = AY
|
|
TMP = AY / 4
|
|
WD = WD + TMP
|
|
TMP = AY / 100
|
|
WD = WD - TMP
|
|
TMP = AY / 400
|
|
WD = WD + TMP
|
|
WD = WD MOD 7
|
|
RETURN
|