is there any function to check if a given date is valid or not? I don't want to write anything from scratch.
e.g. 32/10/2012 is not valid and 10/10/2010 is valid
Use the DateTime. TryParseExact method in C# for Date Format validation. They method converts the specified string representation of a date and time to its DateTime equivalent. It checks whether the entered date format is correct or not.
If the variables are of Date object type, we will check whether the getTime() method for the date variable returns a number or not. The getTime() method returns the total number of milliseconds since 1, Jan 1970. If it doesn't return the number, it means the date is not valid.
You need to set lenient false (setLenient(false);) for simple date format otherwise sometimes results will be invalid for example yyyy-mm-dd will get parse with wrong date.
If the format of the date is constant and you don't want to use boost, you can always use strptime
, defined in the ctime
header:
const char date1[] = "32/10/2012";
const char date2[] = "10/10/2012";
struct tm tm;
if (!strptime(date1, "%d/%m/%Y", &tm)) std::cout << "date1 isn't valid\n";
if (!strptime(date2, "%d/%m/%Y", &tm)) std::cout << "date2 isn't valid\n";
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With