Вам даже не нужно сравнивать ее со строкой (то есть const char*
) ... <ctime>
предоставляет свой собственный метод для сравнения всего этого ...
Во-первых, создайте счетчик, который отслеживает все дни недели (0-6),
enum
{
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
};
Теперь проверьте это следующим образом:
if (*ltm.tm_wday == Sunday)
std::cout << "Its Sunday!" << std::endl;
Сделайте то же самое дляи в другие дни ...
Если вы присмотритесь, вы увидите, что член структуры tm_wday возвращает число в диапазоне 0-6 ( Воскресенье до Понедельник ) и перечислитель просто уточнить это ... (чтобы не путать с if (*ltm.tm_wday == 0 /*Sunday*/)
или чем-то в этом роде).)
Подробнее о структуре tm здесь ...
Существует даже C ++ альтернатива здесь ...
Примечание: std::tm
дает точное время UTC, поэтому рекомендуется проверить его и использовать эту функцию вместо localtime()
как указано в разделе комментариев ...
Редактировать: Если у вас
есть , чтобы сравнить его со строкой ... тогда, возможно, функция может помочь ...
const char * GetDay(struct tm * tm)
{
switch (tm->tm_wday)
{
case 0:
return "Sun";
case 1:
return "Mon";
case 2:
return "Tue";
case 3:
return "Wed";
case 4:
return "Thu";
case 5:
return "Fri";
case 6:
return "Sat";
default: return "";
}
}
Затем сделайте что-то вроде:
if (GetDay(ltm) == "Sun")
std::cout << "Its Sunday again!" << std::endl;
С уважением,
Ruks.