home *** CD-ROM | disk | FTP | other *** search
- REM --------------------------------------------------------
- REM DATUM.BAS
- REM Plausibilitätsüberprüfung bei Datumseingaben
- REM (c) 1988 by Gerd Kraus & TOOLBOX
- REM --------------------------------------------------------
- REM Compiler: Turbo-Basic 1.0.e
- REM --------------------------------------------------------
-
- DEF FNEinzelDatum%(Dat$, von%, Anzahl%)
- LOCAL Hilf$
-
- Hilf$ = MID$(Dat$, von%, Anzahl%)
- FNEinzelDatum% = VAL(Hilf$)
-
- END DEF
-
- REM --------------------------------------------------------
-
- SUB DatumsTest (TempDat$, Meldung$)
- LOCAL Tag%, Monat%, Jahr%
-
- Tag% = FNEinzelDatum% (TempDat$, 1, 2)
- Monat% = FNEinzelDatum% (TempDat$, 4, 2)
- Jahr% = FNEinzelDatum% (TempDat$, 7, 2)
- SELECT CASE Tag%
- CASE 1 TO 31
- CASE ELSE
- Meldung$ = "Tage nur von 1 .. 31 !!"
- EXIT SUB
- END SELECT
- SELECT CASE Monat%
- CASE 1 TO 12
- CASE ELSE
- Meldung$ = "Monate nur von 1 .. 12 !!"
- EXIT SUB
- END SELECT
- SELECT CASE Monat%
- CASE 4, 6, 9, 11 ' Monate mit 30 Tagen
- IF Tag% > 30 THEN
- Meldung$ = "Der Monat hat zuviele Tage !!"
- EXIT SUB
- END IF
- CASE 2
- IF (Tag% > 29) THEN
- Meldung$ = "Der Februar hat max. 29 Tage !!"
- EXIT SUB
- END IF
- REM Sonderfall : Februar im Schaltjahr
- IF (Tag% > 28) AND ((1900 + Jahr%) / 4) <> _
- INT (((1900 + Jahr%) / 4)) THEN
- Meldung$ = "Dieses Jahr ist kein Schaltjahr !!"
- EXIT SUB
- END IF
- END SELECT
-
- END SUB
-
- REM --------------------------------------------------------
- REM Hauptprogramm
- CLS
- REM DO
- Datum$ = "31.02.88"
- Fehler$ = ""
- CALL DatumsTest (Datum$, Fehler$)
- PRINT Datum$
- PRINT Fehler$
- REM LOOP UNTIL Fehler$ = ""
- REM --------------------------------------------------------