REM-------------月の正誤チェック 40 IF(M<1) OR (M>12) GOTO 900
REM-------------うるう年を計算する場所はここ 50 U=0 60 IF ((INT(Y/4)=Y/4) AND (INT(Y/100)<>Y/100)) OR (INT(Y/400)=Y/400) THEN U=1
REM-------------月から日のリミッタを検索(上から1月〜12月) 70 IF M=1 LD=31 80 IF M=2 LD=28+U 90 IF M=3 LD=31 100 IF M=4 LD=30 110 IF M=5 LD=31 120 IF M=6 LD=30 130 IF M=7 LD=31 140 IF M=8 LD=31 150 IF M=9 LD=30 160 IF M=10 LD=31 170 IF M=11 LD=30 180 IF M=12 LD=31
REM-------------日の正誤チェック 190 IF(D<1) OR (D>LD) GOTO 920
10 D$= "YYYYMMDD":' ←適当な値を入れる 20 GOSUB 100 30 IF RE= 1 THEN PRINT "OKです" ELSE PRINT "ダメです" 40 END 100 REM D$が正しい日付かどうかチェックする 110 REM OKならRE=1,ダメならRE=0にする。 120 RE= 0 130 IF LEN(D$)<> 8 THEN RETURN 140 TY= INT(LEFT$(D$, 4) 150 TM= INT(MID$(D$, 5,2)) 160 IF TM< 1 OR 12< TM THEN RETURN 170 TD= INT(RIGHT$(D$,2)) 180 IF TD< 1 OR 31< TD THEN RETURN 190 TN= 31 200 IF TN= 2 AND (((TY MOD 4= 0) AND (TY MOD 100= 0)) OR (TY MOD 400= 0)) THEN TN= 29 ELSE TN= 28 210 IF TD= 4 OR TD= 6 OR TD= 9 OR TD= 11 THEN TN= 30 220 IF TN< TD THEN RETURN 230 RE= 1: RETURN