URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6630
[ Назад ]

Исходное сообщение
"Работа со временев Linux &FreeBSD посредством c++"

Отправлено weldpua2008 , 26-Июл-07 22:24 
Привет всем
Вопрос такой - как в с++ под Linux &FreeBSD работать со временем.
Смотрел гугл, но он ничего не подсказал, смотрел всякие time.h на своем linux'е но так как в с++ слаб то ответа не нашел.В книге что у меня по с++ так же этого нет :(

Все что нужно - получение в переменные:
год,
месяц,
день,
час,
минута.

Причем текущие значения...


Содержание

Сообщения в этом обсуждении
"Работа со временев Linux &FreeBSD посредством c++"
Отправлено elvenic , 26-Июл-07 22:40 
>[оверквотинг удален]
>
>
>Все что нужно - получение в переменные:
>год,
>месяц,
>день,
>час,
>минута.
>
>Причем текущие значения...

Вообще-то, RTFM ;)

    man 3 time
    man 3 localtime
    man 3 gmtime

А в частности: time() возврашает количецтво секунд с 1970-го года (в UTC), localtime()/gmtime() переводит их в формат структуры struct tm, в которой есть поля tm_sec, tm_hour, tm_mday, tm_mon, tm_year (localtime() переводит в локальной timezone, а gmtime() - в UTC).



"Работа со временев Linux &FreeBSD посредством c++"
Отправлено weldpua2008 , 26-Июл-07 23:04 
А не затруднит пример?
Просто Я дуб-дубом...


#include <time.h>

Пробую так
//31// tm* ttt;
//32// time_t* ttt1;
//34// ttt1=time(NULL);
//36// ttt=gmtime(time(ttt1));


./simple1.cpp: In function ‘int main(int, char**)’:
./simple1.cpp:34: error: invalid conversion from ‘time_t’ to ‘time_t*’
./simple1.cpp:36: error: invalid conversion from ‘time_t’ to ‘const time_t*’
./simple1.cpp:36: error:   initializing argument 1 of ‘tm* gmtime(const time_t*)’

Пробую так
//31// tm ttt;
//32// time_t ttt1;
//34// ttt1=time(NULL);
//36// ttt=gmtime(time(ttt1));


./simple1.cpp:36: error: invalid conversion from ‘time_t’ to ‘time_t*’
./simple1.cpp:36: error:   initializing argument 1 of ‘time_t time(time_t*)’
./simple1.cpp:36: error: invalid conversion from ‘time_t’ to ‘const time_t*’
./simple1.cpp:36: error:   initializing argument 1 of ‘tm* gmtime(const time_t*)’
./simple1.cpp:36: error: no match for ‘operator=’ in ‘ttt = gmtime(((const time_t*)time(((time_t*)ttt1))))’
/usr/include/time.h:135: note: candidates are: tm& tm::operator=(const tm&)


"Работа со временев Linux &FreeBSD посредством c++"
Отправлено weldpua2008 , 26-Июл-07 23:19 
Нашел работающий пример

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
   time_t t;
   struct tm *gmt,*area;
   t = time(NULL);
   area = localtime(&t);
   printf("Локальное время:%s\n",asctime(area));
   gmt = gmtime(&t);
   printf("GMT:%s\n",asctime(gmt));
   return 0;
}


"Работа со временев Linux &FreeBSD посредством c++"
Отправлено phpcoder , 27-Июл-07 12:57 
Вот мой примерчик:

[c0der@rock ~/c]$ cat times.c
#include <stdio.h>          
#include <time.h>

int main(void) {
struct tm *times;
time_t now;

now = time(NULL);
times = localtime(&now);

printf("На дворе:\n"
       "Год: %d\n"
       "Месяц: %d\n"
       "День: %d\n"
       "Час: %d\n"
       "Минута: %d\n"
       "Секунда: %d\n",
       times->tm_year + 1900,
       times->tm_mon + 1,
       times->tm_mday,
       times->tm_hour,
       times->tm_min,
       times->tm_sec);

return 0;
}
[c0der@rock ~/c]$
[c0der@rock ~/c]$ ./times
На дворе:
Год: 2007
Месяц: 7
День: 27
Час: 15
Минута: 55
Секунда: 19
[c0der@rock ~/c]$


"Работа со временев Linux &FreeBSD посредством c++"
Отправлено weldpua2008 , 27-Июл-07 15:13 
Спасибо!!!!

"Работа со временев Linux &FreeBSD посредством c++"
Отправлено sandy , 30-Июл-07 14:38 
Если на С++, то я когда-то писал свой класс для работы с датами/временем. И где-то на этом форуме уже об этом сообщал. Если интересно, - могу выложить



"Работа со временев Linux &FreeBSD посредством c++"
Отправлено valare , 31-Июл-07 19:14 
>И где-то на этом форуме уже об этом сообщал. Если
>интересно, - могу выложить

Лишним, знание не бывает :)

Кидай



"Работа со временев Linux &FreeBSD посредством c++"
Отправлено sandy , 02-Авг-07 14:58 
>>И где-то на этом форуме уже об этом сообщал. Если
>>интересно, - могу выложить
>
>Лишним, знание не бывает :)
>
>Кидай

Куда?


"Работа со временев Linux &FreeBSD посредством c++"
Отправлено weldpua2008 , 02-Авг-07 22:30 
>>>И где-то на этом форуме уже об этом сообщал. Если
>>>интересно, - могу выложить
>>
>>Лишним, знание не бывает :)
>>
>>Кидай
>
>Куда?

Сюда или на valeranew!!!@!!!ukr.net


"Работа со временев Linux &FreeBSD посредством c++"
Отправлено dronord , 03-Авг-07 10:48 
Хорошее API есть в boost: http://boost.org/doc/html/date_time.html