1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| DATA work.test ;
INPUT verdict :$3. dateCar :$10. ;
FORMAT dateOK DDMMYY10. ;
jj = SCAN(dateCar,1,"/")+0 ;
mm = SCAN(dateCar,2,"/")+0 ;
aa = SCAN(dateCar,3,"/")+0 ;
IF 1582 <= aa <= 20000
AND 1 <= mm <= 12
AND (
(1 <= jj <= 31 AND mm NOT IN (2,4,6,9,11) )
OR (1 <= jj < 31 AND mm IN (4,6,9,11) )
OR (mm = 2 AND jj < 29 AND (MOD(aa,4) > 0 OR MOD(aa,400) > 0) ) ) /* années non bissextiles */
OR (mm = 2 AND jj < 30 AND (MOD(aa,4) = 0 AND MOD(aa,400) = 0 ) /* années bissextiles */
) THEN dateOK = MDY(mm,jj,aa) ;
DATALINES ;
OK 31/01/2013
OK 25/04/2009
NON 30/02/2010
NON 31/09/2014
NON 32/03/1999
NON 01/01/0001
NON 29/02/2013
NON 29/02/1900
OK 31/12/9999
;
RUN ; |
Partager