Рассчитать дату восточной Пасхи в SQLPython

Программы на Python
Ответить
Anonymous
 Рассчитать дату восточной Пасхи в SQL

Сообщение Anonymous »

Мне нужна помощь в расчете восточной/православной Пасхи. Я попробовал поискать здесь и нашел только западную/католическую Пасху, а не восточную/православную Пасху. Я нашел фрагмент Python и хочу преобразовать его в T-SQL, но он дает неправильные результаты.
Фрагмент Python:

Код: Выделить всё

     y=2025
d=(y%19*19+15)%30
e=(y%4*2+y%7*4-d+34)%7+d+127
m=e/31
a=e%31+1+(m>4)
if a>30:a,m=1,5
print (a,'/',m,'/',y)
SQL пытается преобразовать его в:

Код: Выделить всё

    DECLARE @param_YEAR_NUMBER SMALLINT = 2025;

DECLARE @local_YEAR_IN_LUNAR_CYCLE TINYINT = @param_YEAR_NUMBER % 19;

DECLARE @local_YEAR_PERIOD_IN_LUNAR_CYCLE TINYINT = @local_YEAR_IN_LUNAR_CYCLE * 19;

DECLARE @local_FIX_1 TINYINT = (@local_YEAR_PERIOD_IN_LUNAR_CYCLE + 15) % 30;

DECLARE @local_FIX_2 TINYINT = ((((@param_YEAR_NUMBER % 4) *2) + ((@param_YEAR_NUMBER % 7) * 4) - @local_FIX_1 + 34) % 7) + @local_FIX_1 + 127;

DECLARE @local_EASTERN_EASTER_MONTH TINYINT = @local_FIX_2 / 31;}

DECLARE @local_EASTERN_EASTER_DAY TINYINT = (@local_FIX_1 % 31) + 1;

IF (@local_EASTERN_EASTER_MONTH > 4)
BEGIN
SET @local_EASTERN_EASTER_DAY = @local_EASTERN_EASTER_DAY + 1;
END;

IF (@local_EASTERN_EASTER_DAY > 30)
BEGIN
SET @local_EASTERN_EASTER_DAY = 1;

SET @local_EASTERN_EASTER_MONTH = 5;
END;
С моим кодом SQL я получаю 15 апреля вместо 20 апреля (дата Пасхи в 2025 году). Что не так с моим кодом? Я не очень хорошо знаю Python, поэтому понятия не имею, что делаю не так.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ate-in-sql
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»