Возникла следующая проблема: необходимо реализовать основные операции работы с временем, т.е. сложение/ вычитание дат с учетом високоса, выделение из упакованного числа года,месяца,дня недели и т.д и наоборот, в общем, полный набор.
Формат хранения времени — такой же как в C — DWORD, хранящий секунды.
В общем, нужны алгоритмы по расчету времени или какие-нибудь исходники, вообще классно было бы глянуть, как это сделано в стандартных функциях С. Если у кого они есть — дайте, плиз
Здравствуйте Roman Fadeyev, Вы писали:
RF>Здравтсвуйте.
RF>Возникла следующая проблема: необходимо реализовать основные операции работы с временем, т.е. сложение/ вычитание дат с учетом високоса, выделение из упакованного числа года,месяца,дня недели и т.д и наоборот, в общем, полный набор.
RF>Формат хранения времени — такой же как в C — DWORD, хранящий секунды.
RF>В общем, нужны алгоритмы по расчету времени или какие-нибудь исходники, вообще классно было бы глянуть, как это сделано в стандартных функциях С. Если у кого они есть — дайте, плиз
ух...
Вобшем так
1 минута = 60 секунд.
1 час = 60 минут
1 сутки = 24 часа
12 месяцев в году в каждом от 28 до 31 дня.
Есть високосные годы — каждый четвёртый.
Умножать, делить, складывать и вычитать умеешь?
-------------------------------------------------------------------
Вызывает презедент к себе коров и говорит:
— Ну, что будем сдавать, молоко или мясо?
(с) Г. Явлинский TV6 — Герой дня (18.04.2002)
Здравствуйте 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), ну да не об этом сейчас речь.
Здравствуйте Roman Fadeyev, Вы писали:
RF>Здравствуйте Gambler, Вы писали:
G>>Здравствуйте Roman Fadeyev, Вы писали:
RF>>>Здравтсвуйте.
RF>>>Возникла следующая проблема: необходимо реализовать основные операции работы с временем, т.е. сложение/ вычитание дат с учетом високоса, выделение из упакованного числа года,месяца,дня недели и т.д и наоборот, в общем, полный набор.
RF>>>Формат хранения времени — такой же как в C — DWORD, хранящий секунды.
RF>>>В общем, нужны алгоритмы по расчету времени или какие-нибудь исходники, вообще классно было бы глянуть, как это сделано в стандартных функциях С. Если у кого они есть — дайте, плиз
Можно посмотреть реализацию классов CTime и CTimeSpan в MFC.Они лежат
в afx.inl и timecore.cpp.
G>ух... G>Вобшем так G>1 минута = 60 секунд. G>1 час = 60 минут G>1 сутки = 24 часа G>12 месяцев в году в каждом от 28 до 31 дня. G>Есть високосные годы — каждый четвёртый.
G>Умножать, делить, складывать и вычитать умеешь?
Если быть таким точным, следует еще учитывать, что каждый 100-ый год (например 1900,
1800, 1700... ) — не високосный, хотя и должен быть таковым, а каждый 400-ый
(например 1600, 2000... ) — високосный, несмотря на то, что он является каждым сотым.
Здравствуйте 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 год не високосный
Здравствуйте Roman Fadeyev, Вы писали:
RF> Ну что, уже, небось, посчитал?
Даже и не собирался.... Оно мне не надо, оно вам надо, как я понял.
-------------------------------------------------------------------
Вызывает презедент к себе коров и говорит:
— Ну, что будем сдавать, молоко или мясо?
(с) Г. Явлинский TV6 — Герой дня (18.04.2002)
Здравствуйте Roman Fadeyev, Вы писали:
RF>Здравтсвуйте.
RF>Возникла следующая проблема: необходимо реализовать основные операции работы с временем, т.е. сложение/ вычитание дат с учетом високоса, выделение из упакованного числа года,месяца,дня недели и т.д и наоборот, в общем, полный набор.
RF>Формат хранения времени — такой же как в C — DWORD, хранящий секунды.
RF>В общем, нужны алгоритмы по расчету времени или какие-нибудь исходники, вообще классно было бы глянуть, как это сделано в стандартных функциях С. Если у кого они есть — дайте, плиз
В исходниках от стингреевского грида есть три файла gxtime.cpp gxtime1.cpp gxtime2.cpp
там есть несколько полезных вещей по сабжу
к примеру проверка на високосность у них такая: