Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Упаковывание даты с double(8 байт) |
Автор: Brodyaga 28.11.2008, 16:44 |
Всем доброго времени суток! Мне нужно как то представить дату в виде числа типа double, тоесть зная целочисленные значения года, месяца, дня, часа, минут и секунд используя какой-либо алгоритм упаковать их в одно число double... Какие предложения? |
Автор: Hades 28.11.2008, 19:58 | ||||
а год в каком формате, 2 или 4 цифры? Алгоритм
j<i ki = sum(mj*kj) + 1; j=1 i = 1, 2, 3, 4, 5, 6; k1 = 1; k2 = 13; k3 = 416; k4 = 9984; k5 = 599040; k6 = 35942400; число = ((((m1*к1 + m2*к2) + m3*к3) + m4*к4) + m5*к5) + m6*к6; m6 = число / k6; m5 = число%k6/k5; m4 = число%k6%k5/k4; ... Только я не уверен, будет ли нормально работать с double.
|
Автор: maxim1000 28.11.2008, 21:30 |
где-то даже слышал, что используется количество дней с какого-то фиксированного момента соответственно, целая часть отвечает за дату, дробная - за часы-минуты-секунды но, честно говоря, не помню уже где встречал... |
Автор: Brodyaga 29.11.2008, 12:24 | ||
В исходниках дельфи ;) |
Автор: ksnk 29.11.2008, 12:41 |
Все же просто. Считаем число дней, прошедшее с 1970 года (к примеру) - это - целое число. Считаем число секунд, прошедшее с начала дня. Делим на 24*60*60 - получаем дробную часть... Считать число дней от даты до даты - задачка несложная, но муторная. проще языковыми функциями воспольваться. да и в double системными функциями дату перегнать значительно проще ![]() Язык-то какой? |
Автор: Brodyaga 29.11.2008, 17:32 | ||
MSVC 2005, C++ |
Автор: ksnk 29.11.2008, 17:52 |
Если мне не изменяет мой склероз - под такие даты заточен класс CTime. Впрочем - не уверен, на С++ писал немного и давно ![]() |
Автор: DenVdmj 29.11.2008, 20:19 |
может не надо ничего упаковывать? проще хранить секунды с начала эпохи. |
Автор: Brodyaga 30.11.2008, 12:11 | ||
Ну дык а как ты эти секунды из даты получишбь то? ![]() |
Автор: Brodyaga 30.11.2008, 12:50 | ||||
Hades,
4
чтото я не понял это что за числа? и почему в формуле +1? поясни пожалуйста... |
Автор: Brodyaga 30.11.2008, 14:07 | ||
Это MFC. Я MFC не использую... |