Si tout ce que vous avez besoin est de vérifier si deux chaînes ont la même date ou non et s'il est garanti que les chaînes sont dans le même format , alors il n'y a pas besoin de le convertir à l'heure de la date. Il suffit de comparer les sous-chaînes après le premier espace. Si elles sont identiques, alors les dates sont les mêmes. Voici l'exemple de code:
using namespace std;
string getCurrentDate()
{
//Enumeration of the months in the year
const char* months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
//Get the current system date time
SYSTEMTIME st;
GetSystemTime(&st);
//Construct the string in the format "21:5 Jan 23, 11"
ostringstream ss;
ss<<st.wHour<<":"<<st.wMinute<<
" "<<months[st.wMonth-1]<<
" "<<st.wDay<<", "<<st.wYear%1000;
//Extract the string from the stream
return ss.str();
}
string getDateString(const string& s)
{
//Extract the date part from the string "21:5 Jan 23, 11"
//Look for the first space character in the string
string date;
size_t indx = s.find_first_of(' ');
if(indx != string::npos) //If found
{
//Copy the date part
date = s.substr(indx + 1);
}
return date;
}
bool isCurrentDate(const string& s1)
{
//Get the date part from the passed string
string d1 = getDateString(s1);
//Get the date part from the current date
string d2 = getDateString(getCurrentDate());
//Check whether they match
return ! d1.empty() && ! d2.empty() && d1 == d2;
}
int main(void)
{
bool s = isCurrentDate("21:5 Jan 23, 11");
bool s1 = isCurrentDate("21:5 Jan 25, 11");
return 0;
}
bonne suggestion, (et de meilleures performances que la conversion de toutes les chaînes à la date/heure), mais devrait aussi ajouter qu'il doit convertir le 'date' courant en chaîne dans le même format pour comparer – davka
Merci Asha pour la réponse. Mais j'ai besoin de comparer "21: 5 23 janvier, 11" avec la date actuelle. Je pense que la date et l'heure actuelles seront toujours en millisecondes. Comment puis-je comparer? – sid
@Subrat: Voir le code mis à jour pour obtenir la date actuelle. – Asha