|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Aleksey Tarasow 2:5053/51.4 17 Sep 2002 18:13:40 To : Evgenij Masherov Subject : Как? -------------------------------------------------------------------------------- 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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/146773d8781e0.html, оценка из 5, голосов 10
|