разобрать местное время в с ++ - PullRequest
2 голосов
/ 14 апреля 2010

Существует ли простой способ для новичка определить текущее время с помощью <ctime> для объекта Date, который имеет

int month
int day
int year

для его переменных-членов? Спасибо.

Ответы [ 2 ]

4 голосов
/ 14 апреля 2010
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 основаны на 0 (0 = январь, 1 = февраль), и вы можете получить различные показатели дня, дня в месяце (tm_mday), недели (tm_wday) и года (tm_yday).

2 голосов
/ 14 апреля 2010

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

#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;
}
...