Поле tm_wday
Поле tm_wday класса tm хранит номер дня недели.
Это целочисленное значение, которое показывает, какой день недели
соответствует дате, хранящейся в структуре. Нумерация начинается
с воскресенья, которое имеет номер 0. Соответственно,
понедельник - это 1, вторник - 2, среда - 3,
четверг - 4, пятница - 5, суббота - 6.
Обычно это поле заполняется автоматически при вызове функций
localtime или gmtime. Однако при необходимости
вы можете задать его вручную, если формируете структуру
самостоятельно.
Синтаксис
tm_object.tm_wday
Пример
Давайте получим текущее время и выведем номер дня недели:
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
time_t raw_time;
time(&raw_time);
tm *time_info = localtime(&raw_time);
cout << "Weekday number: " << time_info->tm_wday << endl;
return 0;
}
Результат выполнения кода (зависит от текущей даты):
3
Пример
Давайте вручную зададим дату и определим день недели
с помощью функции mktime, которая нормализует
структуру и заполняет поле tm_wday:
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
tm date_info = {};
date_info.tm_year = 2026 - 1900; // years since 1900
date_info.tm_mon = 8; // September (0-11)
date_info.tm_mday = 12; // day of month
mktime(&date_info);
cout << "Weekday number: " << date_info.tm_wday << endl;
return 0;
}
Результат выполнения кода:
"Weekday number: 6"