DAX · UDF
Date.Holidays.GoodFriday
Sexta-feira da Paixão: 2 dias antes da Páscoa.
Categoria: FeriadosTipo: UDFVersão: v1.1.0Fonte: Paulo André Jesus — OfficeTuningAtualizado em: 25/09/2026
Documentação completa na Function Library →Sintaxe
Date.Holidays.GoodFriday ( pYearNumber )Argumentos
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| pYearNumber | INT64 VAL | Sim | Ano, 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 ) )
/// Sexta-feira da Paixão: 2 dias antes da Páscoa.
/// @param {INT64} pYearNumber - Ano, de 1583 a 9999.
/// @returns Data, ou BLANK fora do intervalo.
FUNCTION Date.Holidays.GoodFriday =
( pYearNumber : INT64 VAL ) =>
VAR vEaster = Date.Holidays.EasterDate ( pYearNumber )
RETURN
-- Sexta-feira da Paixão
IF ( ISBLANK ( vEaster ), BLANK (), vEaster - 2 )
EVALUATE
{ Date.Holidays.GoodFriday ( 2025 ), Date.Holidays.GoodFriday ( 2026 ) } // 18/04/2025 · 03/04/2026Exemplos
EVALUATE { Date.Holidays.GoodFriday ( 2026 ) }
// 03/04/2026Dicas e observações
💡 Feriado nacional (Paixão de Cristo).
Dependências
Date.Holidays.EasterDate