void compareDates(string date1, string date2) {This function takes two strings, date1 and date2. Both dates are in the format of dd-mm-yyyy. Note that the hyphens can be any character as the sub-strings ignores them.
//create a time_t object
time_t rawtime;
time(&rawtime);
//create a tm structure and load in date1
struct tm * timeinfo1;
timeinfo1 = localtime(&rawtime);
timeinfo1->tm_year = atoi(date1.substr(6).c_str()) - 1900;
timeinfo1->tm_mon = atoi(date1.substr(3, 2).c_str()) - 1;
timeinfo1->tm_mday = atoi(date1.substr(0, 2).c_str());
//create a tm structure and load in date2
struct tm * timeinfo2;
timeinfo2 = localtime(&rawtime);
timeinfo2->tm_year = atoi(date2.substr(6).c_str()) - 1900;
timeinfo2->tm_mon = atoi(date2.substr(3, 2).c_str()) - 1;
timeinfo2->tm_mday = atoi(date2.substr(0, 2).c_str());
//compare the dates
if(timeinfo1 > timeinfo2) {
cout << "date1 is the latest date";
}
else {
cout << "date2 is the latest date";
}
The function works by creating two tm objects and loading in some demo time data from our time_t object at the beginning of the function. This creates two identical time/date objects. We then overwrite the dates in these objects with our two dates. Once complete we have our two identical date/time objects but now with our two dates overwriting the date parts.
The final lines simply compare the two dates and outputs whichever one is the latest.
No comments:
Post a comment