Created
January 3, 2026 16:21
-
-
Save mit41301/905588934c4eef115ebfc822aae90d51 to your computer and use it in GitHub Desktop.
Monthly calendar printing program Between 1900 and 2099 using BASIC. Works well with QB64.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 10 REM CALENDAR.BAS - LAST EDITTED 31/01/82 | |
| 20 REM Dr Dobbs Nov 1981 p61 | |
| 30 REM This program inputs a month and year and | |
| 40 REM from that prints the current months calendar. | |
| 50 REM | |
| 60 DEFINT A-Y | |
| 70 DEFSTR Z | |
| 80 INPUT "Month";M | |
| 90 INPUT "Year";Y | |
| 100 IF Y<1900 OR Y > 2099 THEN PRINT "Between 1900 and 2099 please!" : GOTO 80 | |
| 110 IF M <1 OR M > 12 GOTO 80 | |
| 120 MONTH = M : YEAR = Y : GOSUB 320 | |
| 130 DAY = D : YEAR = Y : MONTH = M+1 | |
| 140 IF MONTH < 13 GOTO 160 ELSE MONTH = 1 | |
| 150 YEAR = YEAR +1 | |
| 160 GOSUB 320 | |
| 170 D=28+D-DAY | |
| 180 IF D<28 THEN D = D+7 | |
| 190 FOR I=1 TO M | |
| 200 READ ZMONTH | |
| 210 NEXT | |
| 220 PRINT " ";ZMONTH; TAB(25); | |
| 230 PRINT USING "####";Y | |
| 240 PRINT " Sun Mon Tue Wed Thu Fri Sat" | |
| 250 PRINT TAB(DAY*4+1); | |
| 260 FOR I=1 TO D | |
| 270 PRINT USING " ##";I; | |
| 280 IF (I+DAY) MOD 7 = 0 AND I < D THEN PRINT | |
| 290 NEXT | |
| 300 PRINT | |
| 310 END | |
| 320 REM Comput the day of the week | |
| 330 MONTH = MONTH -2 | |
| 340 IF MONTH > 0 GOTO 360 ELSE MONTH = MONTH + 12 | |
| 350 YEAR = YEAR - 1 | |
| 360 CENTURY = YEAR\100 | |
| 370 YEAR = YEAR MOD 100 | |
| 380 D= ((13*MONTH - 1)\ 5 + 5 * YEAR\4 + CENTURY\4 - 2 * CENTURY +1) MOD 7 | |
| 390 RETURN | |
| 400 DATA January,February,March,April,May,June,July,August,September | |
| 410 DATA October,November,December |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment