right|thumb|200px|Tábua medieval da Escandinávia, em escrita rúnica, para cálculo da data da Páscoa thumb| Distribuição das datas da Páscoa para um período completo de 5.700.000 anos. O cálculo da data da Páscoa, também conhecido como Computus em latim, é fundamental no calendário cristão desde os primórdios da cristandade, tornando-se definido na Idade Média.

A Páscoa é celebrada no primeiro domingo após a primeira lua cheia que ocorre no dia do equinócio da Primavera, ou logo a seguir, (no hemisfério norte, outono no hemisfério sul), ou seja, é equivalente à antiga regra de que seria o primeiro Domingo após o 14º dia do mês lunar de Nissan. O dia do domingo de Páscoa pode variar entre as datas extremas de 22 de Março e de 25 de Abril, dependendo da disposição dos dias e dos meses nas semanas.

Os dias extremos deste intervalo correspondem muito raramente a domingos de Páscoa. A última vez que ocorreu a 22 de Março foi em 1818 e a próxima será em 2285. Menos raras são as Páscoas a 23 de Março (anos 1913, 2008 e 2160) e 25 de Abril (anos 1943, 2038 e 2190).

Cálculo da data da Páscoa recorrendo a tabela simples Obtenha o número dourado somando 1 ao resto da divisão inteira do ano em questão por 19.

Ao número final chamaremos de "X". Esse número é o número áureo que quer dizer "número dourado" pelo seu valor co cômputo pascal que corresponde a uma data específica dada na tabela abaixo. Esse número áureo corresponde à data da Lua cheia pascal. A Páscoa será celebrada ao domingo seguinte à data encontrada na tabela. Caso a data já seja um domingo, a Páscoa é o domingo da semana seguinte.

Exemplo:

2020/19 é igual a 106, com resto 6;

6+1 = 7 (Número dourado)

Consultando na tabela, chega-se a 8 de abril, depois procura-se o domingo seguinte. A Páscoa em 2020 será no dia 12 de abril, já que o dia 8 é uma quarta-feira.

Ano X Data19952014 1 14 de Abril 19962015 2 3 de Abril 19972016 3 23 de Março 19982017 4 11 de Abril 19992018 5 31 de Março20002019 6 18 de Abril 20012020 7 8 de Abril 20022021 8 28 de Março20032022 9 16 de Abril 20042023 10 5 de Abril20052024 11 25 de Março20062025 12 13 de Abril20072026 13 2 de Abril 20082027 14 22 de Março20092028 15 10 de Abril 20102029 16 30 de Março 20112030 17 17 de Abril 20122031 18 7 de Abril 20132032 19 27 de Março

Cálculo da data da Páscoa recorrendo a algoritmos Algoritmo de Gauss Para calcular o dia da Páscoa (Domingo), usa-se a fórmula abaixo, onde o "ANO" deve ser introduzido com 4 dígitos. O operador MOD é o resto da divisão.

a = ANO MOD 19 b = ANO MOD 4 c = ANO MOD 7

No calendário gregoriano: k = ANO / 100 p = (13 + 8*k) / 25 q = k / 4 M = (15 - p + k - q) MOD 30 N = (4 + k - q) MOD 7 No calendário Juliano: M = 15 N = 6

d = ((19*a) + M) MOD 30 e = ((2*b) + (4*c) + (6*d) + N) MOD 7

março = 22 + d + e abril = d + e - 9

SE abril == 25 E d == 28 E e == 6 E (11*M + 11) MOD 30 < 19 : abril = 18 SE abril == 26 E d == 29 E e == 6 : abril = 19

SE março ≤ 31 : mês = 3 dia = março SENÃO : mês = 4 dia = abril

exemplos: Para o ano de :

a= MOD 19 = b= MOD 4 = c= MOD 7 = d=(19 * + 24) MOD 30 = e=(2 * + 4 * + 6 * + 5) MOD 7 =

(d + e) = + =

Logo, o Domingo de Páscoa calha dias depois de 22/3/, ou seja a

Algoritmo de Meeus/Jones/Butcher Outro Algoritmo, conhecido como "Meeus/Jones/Butcher", tem a vantagem de não ter exceções para o calendário gregoriano (a partir de 1583), conforme apresentado por Jean Meeus em seu livro "Astronomical Algorithms" :

a = ANO MOD 19 b = ANO \ 100 c = ANO MOD 100 d = b \ 4 e = b MOD 4 f = (b + 8) \ 25 g = (b - f + 1) \ 3 h = (19 × a + b - d - g + 15) MOD 30 i = c \ 4 k = c MOD 4 L = (32 + 2 × e + 2 × i - h - k) MOD 7 m = (a + 11 × h + 22 × L) \ 451 MÊS = (h + L - 7 × m + 114) \ 31 DIA = 1+ (h + L - 7 × m + 114)MOD 31

Obs.: O sinal "\" refere-se à divisão obtendo o inteiro (INT). Exemplo: 7\3 é igual a 2 e não a 2,333.

Exemplo para o ano de 2008: a = 2008 MOD 19 = 13 b = 2008 \ 100 = 20 c = 2008 MOD 100 = 8 d = 20 \ 4 = 5 e = 20 MOD 4) = 0 f = (20 + 8) \ 25 = 1 g = (20 - 1 + 1) \ 3 = 6 h = (19 × 13 + 20 - 5 - 6 + 15) MOD 30 = 1 i = 8 \ 4 = 2 k = 8 MOD 4 = 0 L = (32 + 2 × 0 + 2 × 2 - 1 - 0) MOD 7 = 0 m = (13 + 11 × 1 + 22 × 0) \ 451 = 0 MÊS = (1 + 0 - 7 × 0 + 114) \ 31 = 3 (Março) DIA =1 + (1 + 0 - 7 × 0 + 114) MOD 31 + 1 = 23

Ou seja, a Páscoa de 2008 caiu em 23 de Março.

Datas dos feriados móveis A seguir temos uma tabela com todos os feriados móveis de um ano, sendo eles: Carnaval, Sexta-Feira Santa, Páscoa e Corpus Christi, do período de 1850 a 2209.

+ Datas para feriados móveis entre os anos 1900 e 2209 Ano Carnaval Sexta-feira Santa Páscoa Corpus Christi - 1900 1990 2142 - - 1991 2143 - - 1992 2144 - - 1993 2145 - - 1994 2146 - - 1995 2147 -1901* 1996 2148 20 (19*) de fevereiro - 1902 1997 2149 - 1903 1998 2150 - - 1999 2151 - 1904 - - - 1905 2000 2152 - 1906 2001 2153 1850 1907 2002 2154 1851 - 2003 2155 - 1908 - - 18521909* 2004 2156 24 (23*) de fevereiro 1853 1910 2005 2157 1854 1911 2006 2158 1855- 2007 2159 -1912 - - 1856 1913* 2008 2160 5 (4*) de fevereiro 1857 1914 2009 2161 1858 1915 2010 2162 1859 -2011 2163 -1916 - - 1860 1917* 2012 2164 21 (20*) de fevereiro 1861 1918 2013 2165 1862 1919 2014 2166 1863 - 2015 2167 -1920 - - 1864 1921* 2016 2168 9 (8*) de fevereiro 1865 1922 2017 2169 1866 1923 2018 2170 1867 - 2019 2171 - 1924 - - 1868 1925* 2020 2172 25 (24*) de fevereiro 1869 - - - - 1926 2021 2173 1870 1927 2022 2174 1871 - 2023 2175 - 1928 - - 1872 1929* 2024 2176 13 (12*) de fevereiro 1873 - - - - 1930 2025 2177 1874 1931 2026 2178 1875 - 2027 2179 -1932 - - 1876 1933* 2028 2180 29 (28*) de fevereiro 1877 1934 2029 2181 1878 1935 2030 2182 1879 - 2031 2183 - 1936 - - 1880 1937* 2032 2184 10 (9*) de fevereiro 1881 1938 2033 2185 1882 1939 2034 2186 1883 - 2035 2187 - 1940 - - 1884 1941* 2036 2188 26 (25*) de fevereiro 1885 1942 2037 2189 1886 1943 2038 2190 1887- 2039 2191 - 1944 - - 1888 1945* 2040 219214 (13*) de fevereiro 1889 1946 2041 2193 1890 1947 2042 2194 1891 - 2043 2195 -1948 - - 1892 194920442196 1893 - - - - 195020452197 1894 195120462198 1895 -20472199 1896 -2048 - 1897 -2049 2060 1898 -2050 2061 1899 -2051 - - - -2062 - -2052 - 1900- -2063 - -2053 2064* 18 (19*) de fevereiro --2054 2065 - -2055 - - - -2066 - -2056 - -- -2067 - -2057 2068 - -2058 2069 --2059 2070 -- 2071 2082 - - 2072 - - - - 2083 - - 2073 2084* 7 (8*) de fevereiro - - 2074 2085 1901- 2075 - - - 2076 - - - - 2086 -- - 2087 - - 2077 2088* 23 (24*) de fevereiro - - 2078 2089 - - 2079 - - - 2080 - 1902- 2081 - 11 de fevereiro -- 2090 - -- 2091 - - - 2092 - 1903 - 2093 - -- 2094 - - - 2095- -- 2096- - - 2097- - - 2098- - - 2099- -- 2100 - - 1949 2101 - - 19502102 - - 1951 2103 - - 1952 2104 - -1953 2105 - - 1954 2106 - - 1955 2107 - - 1956 2108 - - 1957 2109 - - 1958 2110 2200 - 1959 2111 - -1960 2112 - - 1961 2113 - -1962 2114 - - 1963 2115 - - 1964 2116 - -1965 2117 - -1966 2118 - -1967 2119 - -1968 2120 - - 1969 2121 - -1970 2122 - -1971 2123 - - 1972 2124 - -1973 2125 - - 1974 2126 - - 1975 2127 - - 1976 2128 - -1977 2129 - -1978 2130 - - 1979 2131 - - 1980 2132 - -1981 2133 2201 -1982 2134 2202 - 1983 2135 2203 - 1984 2136 2204 - 1985 2137 2205 -1986 2138 2206 -1987 2139 2207 1904 1988 2140 2208 -1989 2141 2209 Nota: Para anos assinalados com asterisco (*) o Carnaval calha no dia assinalado entre parênteses.

Uma forma de aplicação do Algoritmo de Meeus/Jones/Butcher, direta e acessível para a maioria das pessoas que utilizam computadores, é a adaptação de Claytom Valle para ser mostrada numa única célula da planilha Excel®, da Microsoft. Basta copiar o conjunto abaixo (exatamente como mostrado, sem espaços) e colar na célula onde se espera que seja exibida a data da Páscoa. Nesse exemplo, considerou-se uma célula chamada "Ano" (definida através da opção "Definir Nome" do Excel®), mas pode-se substituir todas as palavras "Ano" pela célula que contenha o ano desejado (como por exemplo "A1", sem aspas):

=DATA(ano;INT((MOD((19*(MOD(ano;19))+(INT(ano/100))-(INT(INT(ano/100)/4))-(INT((INT(ano/100)-(INT((INT(ano/100)+8)/25))+1)/3))+15);30)+MOD((32+(2*MOD(INT(ano/100);4))+(2*INT(MOD(ano;100)/4))-(MOD((19*(MOD(ano;19))+(INT(ano/100))-(INT(INT(ano/100)/4))-(INT((INT(ano/100)-(INT((INT(ano/100)+8)/25))+1)/3))+15);30))-(MOD(MOD(ano;100);4)));7)-(7*INT(((MOD(ano;19))+(11*MOD((19*(MOD(ano;19))+(INT(ano/100))-(INT(INT(ano/100)/4))-(INT((INT(ano/100)-(INT((INT(ano/100)+8)/25))+1)/3))+15);30))+(22*MOD((32+(2*MOD(INT(ano/100);4))+(2*INT(MOD(ano;100)/4))-(MOD((19*(MOD(ano;19))+(INT(ano/100))-(INT(INT(ano/100)/4))-(INT((INT(ano/100)-(INT((INT(ano/100)+8)/25))+1)/3))+15);30))-(MOD(MOD(ano;100);4)));7)))/451))+114)/31);MOD((MOD((19*(MOD(ano;19))+(INT(ano/100))-(INT(INT(ano/100)/4))-(INT((INT(ano/100)-(INT((INT(ano/100)+8)/25))+1)/3))+15);30)+MOD((32+(2*MOD(INT(ano/100);4))+(2*INT(MOD(ano;100)/4))-(MOD((19*(MOD(ano;19))+(INT(ano/100))-(INT(INT(ano/100)/4))-(INT((INT(ano/100)-(INT((INT(ano/100)+8)/25))+1)/3))+15);30))-(MOD(MOD(ano;100);4)));7)-(7*INT(((MOD(ano;19))+(11*MOD((19*(MOD(ano;19))+(INT(ano/100))-(INT(INT(ano/100)/4))-(INT((INT(ano/100)-(INT((INT(ano/100)+8)/25))+1)/3))+15);30))+(22*MOD((32+(2*MOD(INT(ano/100);4))+(2*INT(MOD(ano;100)/4))-(MOD((19*(MOD(ano;19))+(INT(ano/100))-(INT(INT(ano/100)/4))-(INT((INT(ano/100)-(INT((INT(ano/100)+8)/25))+1)/3))+15);30))-(MOD(MOD(ano;100);4)));7)))/451))+114);31)+1)

Observação: devido à limitação do Excel em relação à Função "Data", a fórmula acima só funciona entre os anos 1900 e 9999.

Abaixo, o Algoritmo convertido para a linguagem "Transact-SQL Server". Poderá também ser adaptado para qualquer outra linguagem de programação:

CREATE FUNCTION fncPascoa (@ANO int) RETURNS datetime AS BEGIN DECLARE @DATA AS DATETIME DECLARE @MES AS INT DECLARE @DIA AS INT DECLARE @A AS INT DECLARE @B AS INT DECLARE @C AS INT DECLARE @D AS INT DECLARE @E AS INT DECLARE @F AS INT DECLARE @G AS INT DECLARE @H AS INT DECLARE @I AS INT DECLARE @K AS INT DECLARE @L AS INT DECLARE @M AS INT SET @A = @ANO%19 SET @B = @ANO/100 SET @C = @ANO%100 SET @D = @B/4 SET @E = @B%4 SET @F = (@B+8)/25 SET @G = (@B-@F+1)/3 SET @H = (19*@A+@B-@D-@G+15)%30 SET @I = @C/4 SET @K = @C%4 SET @L = (32+2*@E+2*@I-@H-@K)%7 SET @M = (@A+11*@H+22*@L)/451 SET @MES = (@H+@L-7*@M+114)/31 SET @DIA = ((@H+@L-7*@M+114)%31)+1 SET @DATA = CAST((LTRIM(RTRIM(CAST(@ANO AS CHAR)))) + '-' + (LTRIM(RTRIM(CAST(@MES AS CHAR)))) + '-' + (LTRIM(RTRIM(CAST(@DIA AS CHAR)))) AS DATETIME) RETURN(@DATA) END; GO

R Exemplo de códico em R require(lubridate) easterDay <- function(year){ a <- year %% 19 b <- floor(year / 100) c <- year %% 100

d <- floor(b / 4) e <- b %% 4

f <- floor((b + 8) / 25)

g <- floor((b - f + 1)/3)

h <- (19*a + b - d - g + 15) %% 30

i <- floor(c / 4) k <- c %% 4

l <- (32 + 2 * e + 2 * i - h - k) %% 7

m <- floor((a + 11*h + 22*l)/451)

n <- floor((h + l - 7*m + 114)/31)

p <- (h + l - 7*m + 114) %% 31

return(c(as.character(month(n, label = TRUE)), p + 1)) } Exemplo de utilização, easterDay(2018), retorna o vetor "Apr" "1".

C# Exemplo de código em C# public static string Calcula(int nAno) { int nRest = (nAno % 19) + 1; DateTime oDia = new DateTime(); switch (nRest) { case 1: oDia = new System.DateTime(nAno, 4, 14, 0, 0, 0, 0); break; case 2: oDia = new System.DateTime(nAno, 4, 3, 0, 0, 0, 0); break; case 3: oDia = new System.DateTime(nAno, 3, 23, 0, 0, 0, 0); break; case 4: oDia = new System.DateTime(nAno, 4, 11, 0, 0, 0, 0); break; case 5: oDia = new System.DateTime(nAno, 3, 31, 0, 0, 0, 0); break; case 6: oDia = new System.DateTime(nAno, 4, 18, 0, 0, 0, 0); break; case 7: oDia = new System.DateTime(nAno, 4, 8, 0, 0, 0, 0); break; case 8: oDia = new System.DateTime(nAno, 3, 28, 0, 0, 0, 0); break; case 9: oDia = new System.DateTime(nAno, 4, 16, 0, 0, 0, 0); break; case 10: oDia = new System.DateTime(nAno, 4, 5, 0, 0, 0, 0); break;