РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
547 of 815 menu

Поле tm_mday

Поле tm_mday класса tm хранит день месяца в диапазоне от 1 до 31. В отличие от большинства остальных полей класса tm, нумерация здесь начинается с единицы, а не с нуля. То есть первый день месяца имеет значение 1, а не 0. Это поле обычно заполняется функциями localtime и gmtime, а также может быть задано вручную перед вызовом функции mktime.

Синтаксис

tm_object.tm_mday

Пример

Давайте получим текущую дату и выведем день месяца:

#include <iostream> #include <ctime> using namespace std; int main() { time_t now = time(nullptr); tm* lt = localtime(&now); cout << lt->tm_mday << endl; return 0; }

Результат выполнения кода:

15

Пример

Давайте зададим конкретную дату вручную и выведем день месяца:

#include <iostream> #include <ctime> using namespace std; int main() { tm t = {}; t.tm_year = 2024 - 1900; t.tm_mon = 0; t.tm_mday = 9; cout << t.tm_mday << endl; return 0; }

Результат выполнения кода:

9

Пример

Давайте проверим, как нормализуется день месяца при переполнении через функцию mktime:

#include <iostream> #include <ctime> using namespace std; int main() { tm t = {}; t.tm_year = 2024 - 1900; t.tm_mon = 0; t.tm_mday = 32; mktime(&t); cout << t.tm_mday << endl; return 0; }

Результат выполнения кода:

1

Как видно из примера, 32 января автоматически превратилось в 1 февраля: функция mktime нормализует значение поля и переносит лишние дни в следующий месяц.

Смотрите также

  • класс tm,
    который хранит компоненты календарного времени
  • поле tm_mon,
    которое хранит номер месяца
  • поле tm_year,
    которое хранит количество лет с 1900 года
  • функция localtime,
    которая заполняет структуру tm локальным временем
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить