Вопрос

Есть ли легкий «начинающий» способ занять текущее время, используя <ctime> до ведущего объекта, имеющего

int month
int day
int year

Для его переменных элементов? Спасибо.

Это было полезно?

Решение

time_t tt = time(NULL); // get current time as time_t
struct tm* t = localtime(&tt) // convert t_time to a struct tm
cout << "Month "  << t->tm_mon 
     << ", Day "  << t->tm_mday
     << ", Year " << t->tm_year
     << endl

То tm struct ints - все 0 (0 = 1 января, 1 = Фев), и вы можете получить различные дневные меры, день в месяц (tm_mday), неделю (tm_wday) и год (tm_yday).

Другие советы

Если есть локальное время, то вы должны использовать localtime_r. а не локальное время, поскольку это версия ReentRant Boytime.

#include <ctime>
#include <iostream>

int main()
{
    time_t tt = time(NULL); // get current time as time_t
    tm  tm_buf;
    tm* t = localtime_r(&tt, &tm_buf); // convert t_time to a struct tm

    std::cout << "Month "  << t->tm_mon
              << ", Day "  << t->tm_mday
              << ", Year " << t->tm_year
              << std::endl;
    return 0;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top