home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 03 / tricks / datum.bas < prev    next >
Encoding:
BASIC Source File  |  1988-10-06  |  1.9 KB  |  68 lines

  1. REM --------------------------------------------------------
  2. REM                   DATUM.BAS
  3. REM     Plausibilitätsüberprüfung bei Datumseingaben
  4. REM           (c) 1988 by Gerd Kraus & TOOLBOX
  5. REM --------------------------------------------------------
  6. REM              Compiler: Turbo-Basic 1.0.e
  7. REM --------------------------------------------------------
  8.  
  9. DEF FNEinzelDatum%(Dat$, von%, Anzahl%)
  10. LOCAL Hilf$
  11.  
  12.   Hilf$ = MID$(Dat$, von%, Anzahl%)
  13.   FNEinzelDatum% = VAL(Hilf$)
  14.  
  15. END DEF
  16.  
  17. REM --------------------------------------------------------
  18.  
  19. SUB DatumsTest (TempDat$, Meldung$)
  20. LOCAL  Tag%, Monat%, Jahr%
  21.  
  22.   Tag%   = FNEinzelDatum% (TempDat$, 1, 2)
  23.   Monat% = FNEinzelDatum% (TempDat$, 4, 2)
  24.   Jahr%  = FNEinzelDatum% (TempDat$, 7, 2)
  25.   SELECT CASE Tag%
  26.     CASE 1 TO 31
  27.     CASE ELSE
  28.       Meldung$ = "Tage nur von 1 .. 31 !!"
  29.       EXIT SUB
  30.   END SELECT
  31.   SELECT CASE Monat%
  32.     CASE 1 TO 12
  33.     CASE ELSE
  34.       Meldung$ = "Monate nur von 1 .. 12 !!"
  35.       EXIT SUB
  36.   END SELECT
  37.   SELECT CASE Monat%
  38.     CASE 4, 6, 9, 11         ' Monate mit 30 Tagen
  39.       IF Tag% > 30 THEN
  40.         Meldung$ = "Der Monat hat zuviele Tage !!"
  41.         EXIT SUB
  42.       END IF
  43.     CASE 2
  44.       IF (Tag% > 29) THEN
  45.         Meldung$ = "Der Februar hat max. 29 Tage !!"
  46.         EXIT SUB
  47.       END IF
  48. REM Sonderfall : Februar im Schaltjahr
  49.       IF (Tag% > 28) AND ((1900 + Jahr%) / 4) <> _
  50.                              INT (((1900 + Jahr%) / 4)) THEN
  51.         Meldung$ = "Dieses Jahr ist kein Schaltjahr !!"
  52.         EXIT SUB
  53.       END IF
  54.   END SELECT
  55.  
  56. END SUB
  57.  
  58. REM --------------------------------------------------------
  59. REM                 Hauptprogramm
  60. CLS
  61. REM DO
  62.   Datum$ = "31.02.88"
  63.   Fehler$ = ""
  64.   CALL DatumsTest (Datum$, Fehler$)
  65.   PRINT Datum$
  66.   PRINT Fehler$
  67. REM LOOP UNTIL Fehler$ = ""
  68. REM --------------------------------------------------------