25.02.2012, 11:58 | #1 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Определение даты Пасхи
Очень это оказалось непростым делом: алгоритмов выложено много, но далеко не все правильные, многие с ошибками, а с учетом того, что создатели сайтов имеют обыкновение бездумно друг у друга копировать, то, сами понимаете... Ну вроде отладил. Если кому интересно, прошу протестировать и, буде ошибки вылезут, о том сообщить. Ниже выложен исходник на Паскале и экзешник для DOS-моды. Если бы кто из Дельфийцев сделал из этого путный исполняемый файл под Windows, было бы совсем хорошо. Но это так, если есть желание. Код:
Var Y,a,b,c,d,e,f,g,h,i,k,L,m,n,p,A1,M1,Date:LongInt; Month:String; Ksi,m2:Real; Begin Write('Year = '); Readln(Y); Writeln; a:=(19*(Y mod 19)+15) mod 30; b:=(2*(Y mod 4)+4*(Y mod 7)+6*a+6) mod 7; If (a+b)>=10 then begin If a+b-9+13<31 then begin Month:='April'; Date:=a+b-9+13; end else begin Month:='May'; Date:=a+b-9+13-30; end; end else begin Month:='April'; Date:=22+a+b+13-31; end; Writeln('Orthodox:'); Writeln(Date:2,' of '+Month); Writeln; a:=Y mod 19; b:=Y div 100; c:=Y mod 100; d:=b div 4; e:=b mod 4; f:=(b+8) div 25; g:=(b-f+1) div 3; h:=(19*a+b-d-g+15) mod 30; i:=c div 4; k:=c mod 4; L:=(32+2*e+2*i-h-k) mod 7; m:=(a+11*h+22*L) div 451; n:=(h+L-7*m+114) div 31; p:=(h+L-7*m+114) mod 31; If n=3 then Month:='March' else Month:='April'; Date:=p+1; Writeln('Catholic:'); Writeln(Date:2,' of '+Month); Writeln; A1:=Y+3760; a:=(12*A1+17) mod 19; b:=A1 mod 4; Ksi:=32.0440933+1.5542418*a+0.25*b-0.00317779*A1; M1:=Trunc(Ksi); m2:=Ksi-1.0*M1; c:=(M1+3*A1+5*b+5) mod 7; If (c=1) and (a>b) and (m2>=0.63287037) then Date:=M1+1 else If (c=2) or (c=4) or (c=6) or ((c=0) and (a>11) and (m2>=0.89772376)) then Date:=M1+1 else Date:=M1; Inc(Date,13); If Date>31 then begin Month:='April'; Dec(Date,31); end else Month:='March'; Writeln('Jewish:'); Writeln(Date:2,' of '+Month); Readln; End. |
25.02.2012, 11:58 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Рекомендую вам сразу пользоваться поиском схожих тем на форуме Определение конденсаторов Сбой даты и времени и ее последствия Определение местоположения Дорогие форумчане, с праздником Великой Пасхи! |
27.02.2012, 23:39 | #2 (permalink) |
Member
Регистрация: 20.06.2011
Сообщений: 23
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 95
|
Не плохо сделано... И главное весьма кстати, ведь скоро Пасха. Но я хотел поинтересоваться, не могли бы Вы подсказать мне какие-нибудь советы или книги или сайты для чайников по программированию(я хочу стать программистом)? Я буду Вам очень признателен если вы не откажете мне в помощи...Или возможно с вами как-то связяться , например по скайпу...
|
28.02.2012, 00:08 | #3 (permalink) | |
Member
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
|
Цитата:
Алехандро сначала следует определиться в какой сфере программирования хотите работать... |
|
28.02.2012, 02:38 | #4 (permalink) |
Member
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
|
Решил не откладывать) правда практически использовал исходный код почти без изменения и оптимизации для лазаруса (дельфи)...
ниже приведен архив с полным проектом под лазарус (хотя скорее всего откроется и нормально откомпилируется и в дельфи) также .exe файл был упакован upx |
28.02.2012, 02:44 | #5 (permalink) |
Member
Регистрация: 06.02.2011
Сообщений: 16,508
Сказал(а) спасибо: 1,116
Поблагодарили 1,940 раз(а) в 329 сообщениях
Репутация: 151418
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
28.02.2012, 02:55 | #6 (permalink) |
TEHNARI.RU
Регистрация: 31.03.2008
Адрес: Израиль
Сообщений: 18,407
Записей в дневнике: 7
Сказал(а) спасибо: 10
Поблагодарили 1 раз в 1 сообщении
Репутация: 14157
|
Прикольно... жалко что он не дает второй раз поиск задать, выходить после первого запроса....
а то что в командной консоли открывает - имхо не мешает.. показывает точно и на этот год и на потом ( даже до 2080 года есть ) понятно дело что не покажет что праздник у евреев начинается вечером ( день до того) ... на пример - в 2012 году в апреле 6 вечером зайдет песах) |
28.02.2012, 03:09 | #7 (permalink) | |
TEHNARI.RU
Регистрация: 31.03.2008
Адрес: Израиль
Сообщений: 18,407
Записей в дневнике: 7
Сказал(а) спасибо: 10
Поблагодарили 1 раз в 1 сообщении
Репутация: 14157
|
прошу прощения ( просто ночь что и влияет уже на мышление... да и не успел исправить в самом посте сверху )
Цитата:
в программе просто, 7 числа... праздник показан у евреев... |
|
28.02.2012, 11:19 | #8 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
|
|
28.02.2012, 11:22 | #10 (permalink) |
votum separatum
Регистрация: 05.05.2008
Сообщений: 14,603
Записей в дневнике: 52
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 18619
|
XP Prof 32 бит - на всякий случай.
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|