home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib40b.dsk / CALENDAR.MAKER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  2KB  |  54 lines

  1. 10  REM  *************************
  2. 20  REM  * CALENDAR.MAKER        *
  3. 30  REM  * BY D.D. JOHANNESEN    *
  4. 40  REM  * COPYRIGHT (C) 1991    *
  5. 50  REM  * MINDCRAFT PUBL. CORP. *
  6. 60  REM  * CONCORD, MA  01742    *
  7. 70  REM  *************************
  8. 80  TEXT : HOME 
  9. 90  VTAB 3: HTAB 13: PRINT "CALENDAR MAKER"
  10. 100  HTAB 10: PRINT "BY D.D. JOHANNESEN"
  11. 110  HTAB 8: PRINT "(C) 1991 MINDCRAFT PUBL."
  12. 120  VTAB 12
  13. 130  DIM MN$(12),DM(12),ED(12),DY$(6)
  14. 140 C$ = " CALENDAR"
  15. 150  FOR I = 1 TO 12
  16. 160  READ MN$(I),DM(I)
  17. 170  NEXT I
  18. 180  DATA  "JAN",31,"FEB",28,"MAR",31,"APR",30,"MAY",31,"JUN",30,"JUL",31,"AUG",31,"SEP",30,"OCT",31,"NOV",30,"DEC",31
  19. 190  FOR I = 1 TO 11:ED(I +1) = ED(I) +DM(I): NEXT I
  20. 200  FOR I = 0 TO 6: READ DY$(I): NEXT I
  21. 210  DATA  "SUN","MON","TUES","WEDNES","THURS","FRI","SATUR"
  22. 220 D$ =  CHR$(4)
  23. 230  ONERR  GOTO 510
  24. 240  PRINT D$;"OPEN";C$
  25. 250  PRINT D$;"WRITE ";C$
  26. 260  FOR I = 1 TO 12
  27. 270  PRINT MN$(I)
  28. 280  PRINT DM(I)
  29. 290  PRINT ED(I)
  30. 300  NEXT I
  31. 310  FOR I = 0 TO 6: PRINT DY$(I): NEXT I
  32. 320  PRINT D$;"CLOSE ";C$:EC =  PEEK(222): IF EC = 10  THEN  PRINT : PRINT "FILE OR DISK LOCKED.": END 
  33. 325  REM 
  34. 330  PRINT D$;"LOCK ";C$
  35. 340  POKE 216,0
  36. 350  PRINT : PRINT "ENTER MONTH,DAY,YEAR"
  37. 360  INPUT " (0,0,0 TO QUIT)? ";M,D,Y
  38. 370  PRINT 
  39. 380  IF M = 0  AND D = 0  AND Y = 0  THEN  END 
  40. 390  IF D <1  THEN  PRINT D;" INVALID DAY!": GOTO 350
  41. 400  IF M <1  OR M >12  THEN  PRINT M;" INVALID MONTH!": GOTO 350
  42. 410 SW = 0
  43. 420  IF Y <100  THEN Y = 1900 +Y
  44. 430 DT = (Y -1704) *365.25
  45. 440  IF DT =  INT(DT)  THEN SW = 1: PRINT Y;" IS A LEAP YEAR"
  46. 450  IF D < = DM(M) +(M = 2  AND SW)  THEN 470
  47. 460  PRINT D;" INVALID DAY FOR ";MN$(M): GOTO 350
  48. 470 DT =  INT(DT) +ED(M) -(M <3  AND SW) +D
  49. 480 DW =  INT(7 *(DT/7 - INT(DT/7)) +.5)
  50. 490  PRINT MN$(M);" ";D;",";Y;" FALLS ON ";DY$(DW);"DAY"
  51. 500  GOTO 350
  52. 510 EC =  PEEK(222): IF EC = 10  THEN  PRINT : PRINT "FILE EXISTS AND IS LOCKED.": END 
  53. 520  IF EC = 8  THEN  PRINT "DISK I/O ERROR.": END 
  54. 530  PRINT "ERROR NO. "EC". CHECK APPLESOFT MANUAL BEFORE CONTINUING.": END