36 lines
874 B
Text
36 lines
874 B
Text
PROGRAM FIVE_WEEKENDS
|
|
|
|
DIM M$[12]
|
|
|
|
PROCEDURE MODULO(X,Y->MD)
|
|
IF Y=0 THEN
|
|
MD=X
|
|
ELSE
|
|
MD=X-Y*INT(X/Y)
|
|
END IF
|
|
END PROCEDURE
|
|
|
|
PROCEDURE WD(M,D,Y->RES%)
|
|
IF M=1 OR M=2 THEN
|
|
M+=12
|
|
Y-=1
|
|
END IF
|
|
MODULO(365*Y+INT(Y/4)-INT(Y/100)+INT(Y/400)+D+INT((153*M+8)/5),7->RES)
|
|
RES%=RES+1.0
|
|
END PROCEDURE
|
|
|
|
BEGIN
|
|
M$[]=("","JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMBER","OCTOBER","NOVEMBER","DECEMBER")
|
|
PRINT(CHR$(12);) ! CLS
|
|
FOR YEAR=1900 TO 2100 DO
|
|
FOREACH MONTH IN (1,3,5,7,8,10,12) DO ! months with 31 days
|
|
WD(MONTH,1,YEAR->RES%)
|
|
IF RES%=6 THEN ! day #6 is Friday
|
|
PRINT(YEAR;": ";M$[MONTH])
|
|
CNT%=CNT%+1
|
|
! IF CNT% MOD 20=0 THEN GET(K$) END IF ! press a key for next page
|
|
END IF
|
|
END FOR
|
|
END FOR
|
|
PRINT("Total =";CNT%)
|
|
END PROGRAM
|