Как?

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)