Re: Вычисление дня недели по дате
От: ZORK Россия www.zorkaltsev.com
Дата: 02.06.03 05:59
Оценка:
Здравствуйте, Silverj, Вы писали:

S>

S>n:=trunc(365.25*y)+trunc(30,6*m)+d-621050;
S>Result:=n-trunc(n/7)*7+1;

S>


Я ради интереса посмотрел как сделан в Java java.util.Calendar, и понятно, что этот алгоритм сильно упрощен и не учитывает ряд моментов — но кроме Leap Seconds, я не готов сказать каких еще. Очевидные моменты почему он может работать не правильно — 2000-ный год был не высокосный, так как он кратен 1000 и возможно 621050 не правильное число, так как оно зависит от того, что считается нулем для системного времени — в unix это, кажется 1-ое января 1970-го, а в DOS и Windows 1-ое же января но 1980-го. Самое просто выяснить это число экперементально — вроде как для этого кода, досточно любое чилсо соотвествующие 12-ти ночи в любой понедельник

-zork
Думать надо ...головой :)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.