Как?
- From
- Aleksey Tarasow (2:5053/51.4)
- To
- Evgenij Masherov
- Date
- 2002-09-17T18:13:40Z
- Area
- RU.ALGORITHMS
Привет Evgenij!
16 Сен 02 09:13, Evgenij Masherov -> Aleksey Tarasow:
AT>>>> У меня похожие проблемы. ужно найти день недели по дате (день,
AT>>>> месяц, год). ужно разницу в днях между двумя датами. Все даты
AT>>>> в новом стиле. Отличаться друг от друга даты могут годами. Так
AT>>>> же нужно узнать разницу между датами в часах/минутах (день,
AT>>>> месяц, день, минута, час).
AC>>>>>>> Вычесть из большей - меньшую. :)
AT>>>> неподходит так как незнаем какая из двух дат больше или меньше,
AT>>>> разница в днях может быть и отрецательной.
EM>>> Используйте функцию "юлианский день", переводящую даты в дни,
EM>>> прошедшие с условной нулевой даты.
AT>> Есть только формуля на бумаге. Без подробного объяснений. Числа
AT>> по ней получаются слишком большие, нехвотает двух байт для их
AT>> хранения (а надо имено для двух байт). Пытался переделать не
AT>> получилось :(.
EM> А что, проблемно промежуточные выкладки делать в 32-х битах?
ужно что бы использовалось не более одного слова, то есть 2 байт.
Вот эта формула: ЮД= |365,25*j|+|30,6*m|+a-679018,5, где
j - номер года (для января и февраля -1)
m - номер месяца (для января и февраля +13, для остальных +)
a - |(число секунд/60+число минут)/60+число часов|/24+число месяца
время указано в UT.
К полученному результату прибавить 2 400 000.
Пример: Определить ЮД 15 января 1980 г. в 19ч. 35 минут 20с UT.
ЮД= 722 829+428+15,8-679 018,5=44 254,3
Ответ: 2 444 254,3
Как видите числа просто бешанные. Может у кого есть попроще?
С уважением, Алексей.
--- ifmail v.2.15
* Origin: Сила - последний аргумент тупиц. (2:5053/51.4)