2010-04-14 2 views
2

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

int month 
int day 
int year 

для его переменных-членов? Благодарю.

+2

Под «стандартным объектом даты» вы подразумеваете 'time_t'? – kennytm

+0

читайте о местных событиях здесь: http://www.twinsun.com/tz/tz-link.htm –

+0

Se man (3) по местному времени – piotr

ответ

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

2

Если есть localtime_r, то вы должны использовать localtime_r, а не местное время, так как это реентеррантная версия 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; 
} 
Смежные вопросы