Алгоритмы работы со временем
От: Roman Fadeyev  
Дата: 01.03.02 12:17
Оценка: -1
Здравтсвуйте.

Возникла следующая проблема: необходимо реализовать основные операции работы с временем, т.е. сложение/ вычитание дат с учетом високоса, выделение из упакованного числа года,месяца,дня недели и т.д и наоборот, в общем, полный набор.

Формат хранения времени — такой же как в C — DWORD, хранящий секунды.

В общем, нужны алгоритмы по расчету времени или какие-нибудь исходники, вообще классно было бы глянуть, как это сделано в стандартных функциях С. Если у кого они есть — дайте, плиз
Re: Алгоритмы работы со временем
От: Gambler  
Дата: 01.03.02 14:55
Оценка: -3
Здравствуйте Roman Fadeyev, Вы писали:

RF>Здравтсвуйте.


RF>Возникла следующая проблема: необходимо реализовать основные операции работы с временем, т.е. сложение/ вычитание дат с учетом високоса, выделение из упакованного числа года,месяца,дня недели и т.д и наоборот, в общем, полный набор.


RF>Формат хранения времени — такой же как в C — DWORD, хранящий секунды.


RF>В общем, нужны алгоритмы по расчету времени или какие-нибудь исходники, вообще классно было бы глянуть, как это сделано в стандартных функциях С. Если у кого они есть — дайте, плиз


ух...
Вобшем так
1 минута = 60 секунд.
1 час = 60 минут
1 сутки = 24 часа
12 месяцев в году в каждом от 28 до 31 дня.
Есть високосные годы — каждый четвёртый.

Умножать, делить, складывать и вычитать умеешь?

-------------------------------------------------------------------

Вызывает презедент к себе коров и говорит:
— Ну, что будем сдавать, молоко или мясо?
(с) Г. Явлинский TV6 — Герой дня (18.04.2002)
Re[2]: Алгоритмы работы со временем
От: Roman Fadeyev  
Дата: 01.03.02 15:50
Оценка:
Здравствуйте Gambler, Вы писали:

G>Здравствуйте Roman Fadeyev, Вы писали:


RF>>Здравтсвуйте.


RF>>Возникла следующая проблема: необходимо реализовать основные операции работы с временем, т.е. сложение/ вычитание дат с учетом високоса, выделение из упакованного числа года,месяца,дня недели и т.д и наоборот, в общем, полный набор.


RF>>Формат хранения времени — такой же как в C — DWORD, хранящий секунды.


RF>>В общем, нужны алгоритмы по расчету времени или какие-нибудь исходники, вообще классно было бы глянуть, как это сделано в стандартных функциях С. Если у кого они есть — дайте, плиз


G>ух...

G>Вобшем так
G>1 минута = 60 секунд.
G>1 час = 60 минут
G>1 сутки = 24 часа
G>12 месяцев в году в каждом от 28 до 31 дня.
G>Есть високосные годы — каждый четвёртый.

G>Умножать, делить, складывать и вычитать умеешь?


G>


Ну, если все так просто, тогда скажи мне, какой день недели был, скажем 28 мая 1968 года? Или дай разницу в днях.часах.секундах между 3.03.2022 10:54:22 и 18.09.1933 14:55:55 с учетом перехода не летнее время. И что самое интересное, работать это будет на 186-ом (16 бит, 8MHz), ну да не об этом сейчас речь.

Ну что, уже, небось, посчитал?
Re[3]: Алгоритмы работы со временем
От: Soulless Россия  
Дата: 01.03.02 19:32
Оценка:
Здравствуйте Roman Fadeyev, Вы писали:

RF>Здравствуйте Gambler, Вы писали:


G>>Здравствуйте Roman Fadeyev, Вы писали:


RF>>>Здравтсвуйте.


RF>>>Возникла следующая проблема: необходимо реализовать основные операции работы с временем, т.е. сложение/ вычитание дат с учетом високоса, выделение из упакованного числа года,месяца,дня недели и т.д и наоборот, в общем, полный набор.


RF>>>Формат хранения времени — такой же как в C — DWORD, хранящий секунды.


RF>>>В общем, нужны алгоритмы по расчету времени или какие-нибудь исходники, вообще классно было бы глянуть, как это сделано в стандартных функциях С. Если у кого они есть — дайте, плиз


Можно посмотреть реализацию классов CTime и CTimeSpan в MFC.Они лежат
в afx.inl и timecore.cpp.
Re[2]: Алгоритмы работы со временем
От: FoToNishe Латвия  
Дата: 01.03.02 22:08
Оценка: 4 (1)
G>ух...
G>Вобшем так
G>1 минута = 60 секунд.
G>1 час = 60 минут
G>1 сутки = 24 часа
G>12 месяцев в году в каждом от 28 до 31 дня.
G>Есть високосные годы — каждый четвёртый.

G>Умножать, делить, складывать и вычитать умеешь?


Если быть таким точным, следует еще учитывать, что каждый 100-ый год (например 1900,
1800, 1700... ) — не високосный, хотя и должен быть таковым, а каждый 400-ый
(например 1600, 2000... ) — високосный, несмотря на то, что он является каждым сотым.

Best Regards
Re[3]: Алгоритмы работы со временем
От: Roman Fadeyev  
Дата: 04.03.02 05:28
Оценка:
Здравствуйте FoToNishe, Вы писали:

G>>ух...

G>>Вобшем так
G>>1 минута = 60 секунд.
G>>1 час = 60 минут
G>>1 сутки = 24 часа
G>>12 месяцев в году в каждом от 28 до 31 дня.
G>>Есть високосные годы — каждый четвёртый.

G>>Умножать, делить, складывать и вычитать умеешь?


FTN>Если быть таким точным, следует еще учитывать, что каждый 100-ый год (например 1900,

FTN>1800, 1700... ) — не високосный, хотя и должен быть таковым, а каждый 400-ый
FTN> (например 1600, 2000... ) — високосный, несмотря на то, что он является каждым сотым.

FTN>Best Regards


Спасибо, не знал. То-то я все выходные голову ломал, почему 3000 год не високосный
Re[3]: Алгоритмы работы со временем
От: Gambler  
Дата: 04.03.02 10:24
Оценка:
Здравствуйте Roman Fadeyev, Вы писали:

RF> Ну что, уже, небось, посчитал?


Даже и не собирался.... Оно мне не надо, оно вам надо, как я понял.
-------------------------------------------------------------------

Вызывает презедент к себе коров и говорит:
— Ну, что будем сдавать, молоко или мясо?
(с) Г. Явлинский TV6 — Герой дня (18.04.2002)
Re: Алгоритмы работы со временем
От: Trantor Россия  
Дата: 05.03.02 08:44
Оценка:
Здравствуйте Roman Fadeyev, Вы писали:

RF>Здравтсвуйте.


RF>Возникла следующая проблема: необходимо реализовать основные операции работы с временем, т.е. сложение/ вычитание дат с учетом високоса, выделение из упакованного числа года,месяца,дня недели и т.д и наоборот, в общем, полный набор.


RF>Формат хранения времени — такой же как в C — DWORD, хранящий секунды.


RF>В общем, нужны алгоритмы по расчету времени или какие-нибудь исходники, вообще классно было бы глянуть, как это сделано в стандартных функциях С. Если у кого они есть — дайте, плиз


http://linux.techass.com/projects/xdb/
Вобще то это библиотека для работы с dbf, но там есть класс xbDate который позволяет манипулировать датами...
В жизни мало быть умным, надо еще быть не дураком.
Re: Алгоритмы работы со временем
От: Юнусов Булат Россия  
Дата: 06.03.02 20:20
Оценка:
Здравствуйте Roman Fadeyev, Вы писали:

В исходниках от стингреевского грида есть три файла gxtime.cpp gxtime1.cpp gxtime2.cpp
там есть несколько полезных вещей по сабжу
к примеру проверка на високосность у них такая:
static BOOL AFXAPI IsLeapYear(int nYear)
{
    return (((nYear % 4 == 0) && (nYear % 100 != 0)) || (nYear % 400 == 0));
}


И еще много всего
Удачи
Булат
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.