Sintaxe
DAX
Date.Holidays.Carnival ( pYearNumber )Parâmetros
- pYearNumberINT64 VALObrigatório
Ano, de 1583 a 9999.
DAX2026
Tipo de retorno
Data
Dependências
Date.Holidays.EasterDate
Exemplos
DAX
EVALUATE { Date.Holidays.Carnival ( 2026 ) }
// 17/02/2026Código completo
DAX
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 ) )
/// Terça-feira de Carnaval: 47 dias antes da Páscoa.
/// @param {INT64} pYearNumber - Ano, de 1583 a 9999.
/// @returns Data, ou BLANK fora do intervalo.
FUNCTION Date.Holidays.Carnival =
( pYearNumber : INT64 VAL ) =>
VAR vEaster = Date.Holidays.EasterDate ( pYearNumber )
RETURN
-- Terça-feira de Carnaval
IF ( ISBLANK ( vEaster ), BLANK (), vEaster - 47 )
EVALUATE
{ Date.Holidays.Carnival ( 2025 ), Date.Holidays.Carnival ( 2026 ) } // 04/03/2025 · 17/02/2026Mais informações
- Fonte
- Paulo André Jesus — OfficeTuning
- Versão
- 1.1.0