home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug067.arc / CALENDAR.BAS < prev    next >
BASIC Source File  |  1979-12-31  |  1KB  |  44 lines

  1. 10 REM CALENDAR.BAS    - LAST EDITTED 31/01/82
  2. 20 REM Dr Dobbs Nov 1981 p61
  3. 30 REM This program inputs a month and year and
  4. 40 REM from that prints the current months calendar.
  5. 50 REM
  6. 60 DEFINT A-Y
  7. 70 DEFSTR Z
  8. 80 INPUT "Month";M
  9. 90 INPUT "Year";Y
  10. 100 IF Y<1900 OR Y > 2099 THEN PRINT "Between 1900 and 2099 please!" : GOTO 80
  11. 110 IF M <1 OR M > 12 GOTO 80
  12. 120 MONTH = M : YEAR = Y : GOSUB 320
  13. 130 DAY = D : YEAR = Y : MONTH = M+1
  14. 140 IF MONTH < 13 GOTO 160 ELSE MONTH = 1
  15. 150 YEAR = YEAR +1
  16. 160 GOSUB 320
  17. 170 D=28+D-DAY
  18. 180 IF D<28 THEN D = D+7
  19. 190 FOR I=1 TO M
  20. 200    READ ZMONTH
  21. 210 NEXT
  22. 220 PRINT " ";ZMONTH; TAB(25);
  23. 230 PRINT USING "####";Y
  24. 240 PRINT " Sun Mon Tue Wed Thu Fri Sat"
  25. 250 PRINT TAB(DAY*4+1);
  26. 260 FOR I=1 TO D
  27. 270    PRINT USING "  ##";I;
  28. 280    IF (I+DAY) MOD 7 = 0 AND I < D THEN PRINT
  29. 290 NEXT
  30. 300 PRINT
  31. 310 END
  32. 320 REM Comput the day of the week
  33. 330 MONTH = MONTH -2
  34. 340 IF MONTH > 0 GOTO 360 ELSE MONTH = MONTH + 12
  35. 350 YEAR = YEAR - 1
  36. 360 CENTURY = YEAR\100
  37. 370 YEAR = YEAR MOD 100
  38. 380 D= ((13*MONTH - 1)\ 5 + 5 * YEAR\4 + CENTURY\4 - 2 * CENTURY +1) MOD 7
  39. 390 RETURN
  40. 400 DATA January,February,March,April,May,June,July,August,September
  41. 410 DATA October,November,December
  42. ) MOD 7
  43. 390 RETURN
  44. 400 DATA January,February,March,A