Code Library

DAX · UDF

Date.Holidays.EasterDate

Data do Domingo de Páscoa no calendário gregoriano.

Categoria: FeriadosTipo: UDFVersão: v1.1.0Fonte: Paulo André Jesus — OfficeTuningAtualizado em: 25/09/2026
Documentação completa na Function Library →

Sintaxe

Date.Holidays.EasterDate ( pYearNumber )

Argumentos

NomeTipoObrigatórioDescrição
pYearNumberINT64 VALSimAno, de 1583 a 9999.

Retorno

Data

Código completo

DEFINE
    /// Data do Domingo de Páscoa (calendário gregoriano, algoritmo Meeus/Jones/Butcher).
    /// @param {INT64} pYearNumber - Ano, de 1583 a 9999.
    /// @returns Data da Páscoa, ou BLANK fora do intervalo.
    FUNCTION Date.Holidays.EasterDate =
        ( pYearNumber : INT64 VAL ) =>
        VAR vYear = pYearNumber
        VAR vA = MOD ( vYear, 19 )
        VAR vB = QUOTIENT ( vYear, 100 )
        VAR vC = MOD ( vYear, 100 )
        VAR vD = QUOTIENT ( vB, 4 )
        VAR vE = MOD ( vB, 4 )
        VAR vF = QUOTIENT ( vB + 8, 25 )
        VAR vG = QUOTIENT ( vB - vF + 1, 3 )
        VAR vH = MOD ( 19 * vA + vB - vD - vG + 15, 30 )
        VAR vI = QUOTIENT ( vC, 4 )
        VAR vK = MOD ( vC, 4 )
        VAR vL = MOD ( 32 + 2 * vE + 2 * vI - vH - vK, 7 )
        VAR vM = QUOTIENT ( vA + 11 * vH + 22 * vL, 451 )
        VAR vMonth = QUOTIENT ( vH + vL - 7 * vM + 114, 31 )
        VAR vDay = 1 + MOD ( vH + vL - 7 * vM + 114, 31 )
        RETURN
            -- Fora do calendário gregoriano ou do limite de DATE: BLANK, em vez de trocar o ano sem avisar
            IF ( vYear < 1583 || vYear > 9999, BLANK (), DATE ( vYear, vMonth, vDay ) )

EVALUATE
{ Date.Holidays.EasterDate ( 2025 ), Date.Holidays.EasterDate ( 2026 ) }  // 20/04/2025 · 05/04/2026

Exemplos

EVALUATE { Date.Holidays.EasterDate ( 2025 ), Date.Holidays.EasterDate ( 2026 ) }
// 20/04/2025 · 05/04/2026

Dicas e observações

💡 Algoritmo Meeus/Jones/Butcher (gregoriano anônimo), o mesmo das funções de feriado do Power Query. 💡 Fora de 1583–9999 retorna BLANK, em vez de trocar o ano.