Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- stock IsValidDate(datestring[])
- {
- static months[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, year, month, day;
- if (strlen(datestring) != 10) return 0;
- if (datestring[2] != '/' || datestring[5] != '/') return false;
- if (datestring[6] < '1' || datestring[6] > '9') // you may change 9 to e.g 2 for allow only 1900-2999
- {
- return false;
- }
- if (datestring[7] < '0' || datestring[7] > '9') return false;
- if (datestring[8] < '0' || datestring[8] > '9') return false;
- if (datestring[9] < '0' || datestring[9] > '9') return false;
- year = strval(datestring[6]);
- if (year % 4 == 0)
- {
- if (year % 100 == 0)
- {
- if (year % 400 == 0)
- {
- months[1] = 29;
- }
- }
- else months[1] = 29;
- }
- if (datestring[3] == '0') // second (month)
- {
- if (datestring[4] < '1' || datestring[4] > '9') return false;
- month = datestring[4] - 48;
- }
- else if (datestring[3] == '1')
- {
- if (datestring[4] < '0' || datestring[4] > '2') return false;
- month = 10 + ( datestring[4] - 48 );
- }
- else return false;
- if (datestring[0] == '0') // first (day)
- {
- if (datestring[1] < '1' || datestring[1] > '9') return false;
- day = datestring[1] - 48;
- }
- else if (datestring[0] == '1' || datestring[0] == '2' || datestring[0] == '3')
- {
- if (datestring[1] < '0' || datestring[1] > '9') return false;
- day = ( (datestring[0] - 48) * 10 ) + (datestring[1] - 48);
- }
- else return false;
- if (months[(month - 1)] < day) return false;
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement