FUNCTION valid_day, day, month, year
tab01_31=['1', '2', '3', '4', '5', '6', '7', '8', '9', '01', '02', '03', '04', '05', '06', '07', $
'08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', $
'22', '23', '24', '25', '26', '27', '28', '29', '30', '31']
day=strtrim(day, 2)
case 1 of
(month eq 1) or (month eq 3) or (month eq 5) or (month eq 7) or (month eq 8) or (month eq 10) $
or (month eq 12): begin
ind=where(day eq tab01_31, count)
if (count eq 0) then begin
return, 0
endif
end
(month eq 4) or (month eq 6) or (month eq 9) or (month eq 11): begin
ind=where(day eq tab01_31(0:38), count)
if (count eq 0) then begin
return, 0
endif
end
(month eq 2) and ( (year mod 4) eq 0): begin
ind=where(day eq tab01_31(0:37), count)
if (count eq 0) then begin
return, 0
endif
end
(month eq 2) and ( (year mod 4) ne 0): begin
ind=where(day eq tab01_31(0:36), count)
if (count eq 0) then begin
return, 0
endif
end
endcase
return, long(day)
end