Официальный сайт студ.городка НГТУ
Программирование и БД » _ctime64 наоборот (конвертировать дату, время в UTC) 

#1  01.11.06 17:44

asp
Профиль

_ctime64 наоборот (конвертировать дату, время в UTC)

То ли туплю... Есть строка:

1162380781.537

Немного поиздевавшись над ней:

Код: С++:

printf( "UNIX time and date:\t%s", _ctime64( &ltime ) );

Имеем вывод:

UNIX time and date: Wed Nov 01 17:33:01 2006

Вопрос: как имея

01/11/06 17:30

получить время в секундах с 01/01/1970?

Offline

#2  01.11.06 18:19

Re: _ctime64 наоборот (конвертировать дату, время в UTC)

1) "вычесть" из  01/11/2006 17:30:00    01/01/1970 00:00:00 (вычесть из поздней даты раннюю)
2) просуммировать для полученной "псевдодаты" произведения каждого интервала (год, месяц, день и тд ) на соотвествующее этому интервалу число секунд

Таким образом, общее число секунд = число лет, помноженное на число секунд в году + число месяцев, помноженное на число секунд в месяце + ... + число минут, помноженное на число секунд в минуте + число секунд

Исправлено Смайлек (01.11.06 18:20)

Offline

#3  01.11.06 18:23

asp
Профиль

Re: _ctime64 наоборот (конвертировать дату, время в UTC)

идея - да. Не забыть при этом учесть месяцы, в которых по 28/29 дней, а также анализировать 30 или 31 день. По сути - да. НО. В том же Багланде есть встроенная функция для конвертирования туда-сюда. Вряд ли здесь нет... :-/ В одну сторону - одно действие, а в другую - целый анализатор?

Offline

#4  01.11.06 18:25

Re: _ctime64 наоборот (конвертировать дату, время в UTC)

или обрати внимание на

Код::

void _ftime64( 
   struct __timeb64 *timeptr 
);

Parameter:
       timeptr  is a pointer to a _timeb or __timeb64 structure.

Remarks
The _ftime function gets the current local time and stores it in the structure pointed to by timeptr. The _timeb structure is defined in SYS\TIMEB.H. It contains four fields:
dstflag
Nonzero if daylight savings time is currently in effect for the local time zone. (See _tzset for an explanation of how daylight savings time is determined.)

millitm
Fraction of a second in milliseconds.

time    // возможно, эта часть структуры тебе и нужна
Time in seconds since midnight (00:00:00), January 1, 1970, coordinated universal time (UTC).

timezone
Difference in minutes, moving westward, between UTC and local time. The value of timezone is set from the value of the global variable _timezone (see _tzset).

Offline

#5  01.11.06 18:34

asp
Профиль

Re: _ctime64 наоборот (конвертировать дату, время в UTC)

не понял... а это тут при чем. Кстати, очередной мини-косяк в МСДНе :))

Код::

printf( "The time is %.19s.%hu %s", timeline, timebuffer.millitm, &timeline[20] );

Sample Output
The time is Wed Feb 13 09:01:26.729 2002

Offline

Программирование и БД » _ctime64 наоборот (конвертировать дату, время в UTC) 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.024 сек.
Выполнено 11 запросов.