|
Определение промежутка времени |
|
|
|
 |
Ответов
|
Apr 23 2013, 09:25
|
Местный
  
Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199

|
Цитата(decom @ Apr 23 2013, 13:01)  Вы задаете вопросы, на которые настолько легко найти ответ в гугле и интернете, что возникают вопросы... http://habrahabr.ru/post/112630/Спасибо за ссылку на статью. Однако это не совсем то, что мне нужно.Точнее это совсем не то, что мне нужно. Мне не надо отмерять промежуток времени. Мне надо определить сколько прошло между 2-мя событиями секунд, минут, часов и суток.
|
|
|
|
|
Apr 23 2013, 11:06
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(rezident @ Apr 23 2013, 14:17)  ...переводите обе даты в нименьшие единицы измерения (секунды) и вычитаете одно число из другого. Например, так: CODE
Начало эпохи 01.01.2000 00:00:00 Работает корректно до 2100 года.
//----------------------------------------------------------------------------- //! \fn extern DWORD date_to_int(DWORD y, DWORD m, DWORD d) //! \brief Преобразует дату в число. //! \param y Год. //! \param m Месяц. //! \param d День месяца. //! \return Номер дня по порядку от начала эпохи. //! \sa int_to_date(). //----------------------------------------------------------------------------- extern DWORD date_to_int(DWORD y, DWORD m, DWORD d);
//----------------------------------------------------------------------------- //! \fn extern void int_to_date (const DWORD jd, DWORD *y, DWORD *m, DWORD *d) //! \brief Преобразует число в дату. //! \param jd Номер дня по порядку от начала эпохи. //! \param y Указатель на переменную для года. //! \param m Указатель на переменную для месяца. //! \param d Указатель на переменную для дня месяца. //! \sa date_to_int(). //----------------------------------------------------------------------------- extern void int_to_date (const DWORD jd, DWORD *y, DWORD *m, DWORD *d);
//----------------------------------------------------------------------------- // int date_to_int(int y, int m, int d) //----------------------------------------------------------------------------- DWORD date_to_int(DWORD y, DWORD m, DWORD d) { if(m < 3) { m += 12; y -= 1; } return ((y * 1461) >> 2) + ((m * 306 + 7) / 10) + d - 730533; }
//----------------------------------------------------------------------------- // void int_to_date(DWORD jd, int *y, int *m, int *d) //----------------------------------------------------------------------------- void int_to_date(DWORD jd, DWORD *y, DWORD *m, DWORD *d) { int aa, bb, cc, dd, ee, mm, xx;
aa = jd + 2483589; bb = (aa * 4 + 3) / 146097; cc = aa - ((146097 * bb) >> 2); dd = (4 * cc + 3) / 1461; ee = cc - ((1461 * dd) >> 2); mm = ((5 * ee + 2) * 13707) >> 21;
*d = ee - ((16043274 * mm + 209716) >> 19) + 1; *m = mm + 3 - 12 * ((mm * 27) >> 8); *y = 100 * bb + dd - 4800 + ((mm * 27) >> 8); }
|
|
|
|
Сообщений в этой теме
d7d1cd Определение промежутка времени Apr 22 2013, 17:42 Psych А таймером никак?? Apr 22 2013, 18:31 d7d1cd Таймером? Каким образом? Мне же не отмерить промеж... Apr 23 2013, 02:45 AlexFTF А в чем проблема? От второго события отнять первое... Apr 23 2013, 04:40 d7d1cd Цитата(AlexFTF @ Apr 23 2013, 08:40) А в ... Apr 23 2013, 08:23   d7d1cd Цитата(rezident @ Apr 23 2013, 14:17) Воо... Apr 23 2013, 10:49 d7d1cd Спасибо за код. Можно попросить прокомментировать ... Apr 23 2013, 11:57 decom В коде похоже ошибка, надо бы проверить. Apr 23 2013, 12:51 AlexFTF Цитата(d7d1cd @ Apr 23 2013, 17:49) Однак... Apr 24 2013, 04:15 d7d1cd Цитата(AlexFTF @ Apr 24 2013, 08:15) Позв... Apr 24 2013, 12:07  Kopa Цитата(d7d1cd @ Apr 24 2013, 16:07) Я пон... Apr 28 2013, 05:51   d7d1cd Цитата(Kopa @ Apr 28 2013, 09:51) Какому ... Apr 30 2013, 16:50    msalov Такой наивный вопрос: а чем стандартная библиотека... Apr 30 2013, 20:05     d7d1cd Цитата(msalov @ May 1 2013, 00:05) Такой ... May 1 2013, 05:35      msalov Пишите хоть в машинных кодах.
Из моего сообщения в... May 2 2013, 04:30      Stanislav Цитата(d7d1cd @ May 1 2013, 09:35) Такое ... May 2 2013, 06:57 adnega Цитата(d7d1cd @ Apr 23 2013, 15:57) Спаси... Apr 28 2013, 07:43 jack_avenger Цитата(Stanislav @ May 2 2013, 09:57) Изв... May 3 2013, 19:06 adnega Цитата(jack_avenger @ May 3 2013, 23:06) ... May 3 2013, 19:10 jack_avenger Цитата(adnega @ May 3 2013, 22:10) Если ч... May 3 2013, 19:13 adnega Цитата(jack_avenger @ May 3 2013, 23:13) ... May 3 2013, 19:24 jack_avenger Цитата(adnega @ May 3 2013, 22:24) А как ... May 3 2013, 20:00 d7d1cd Господа, деление меня не волнует (так же как и умн... May 4 2013, 06:06 decom Вы уже достали своими детскими вопросами.
Вот алго... May 4 2013, 07:01 adnega Цитата(decom @ May 4 2013, 11:01) Вы уже ... May 4 2013, 16:13 decom Полагаю ТС собирается сделать гаджет типа "ск... May 4 2013, 16:43 Слесарь Помнится, вопрос расчета времени по календарю не т... May 4 2013, 17:07 adnega Цитата(Слесарь @ May 4 2013, 21:07) Помни... May 4 2013, 17:16 Слесарь странно, разве вам известно как распределится врем... May 4 2013, 17:31 haker_fox QUOTE (Слесарь @ May 5 2013, 02:31) стран... May 6 2013, 03:35 adnega Цитата(Слесарь @ May 4 2013, 21:31) Время... May 6 2013, 09:31 Слесарь Рас читывать количество месяцев за промежуток врем... May 6 2013, 05:08 d7d1cd Сразу хочу сказать спасибо всем за помощь. Алгорит... May 6 2013, 14:29 adnega Цитата(d7d1cd @ May 6 2013, 18:29) Только... May 6 2013, 17:18
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|