Sintaxe
M
fnHolidaysInPeriodPT(StartDate as date, EndDate as date) as tableParâmetros
- StartDatedateObrigatório
Início do período.
M#date(2024, 1, 1)- EndDatedateObrigatório
Fim do período, inclusive.
M#date(2026, 12, 31)
Tipo de retorno
table [DateReference = date, HolidayPT = text, HolidayType = text]
Dependências
fnFeriados
Exemplos
M
fnHolidaysInPeriodPT(#date(2024, 1, 1), #date(2026, 12, 31))
// 42 linhas (14 por ano)
Table.SelectRows(fnHolidaysInPeriodPT(#date(2026, 1, 1), #date(2026, 12, 31)), each [HolidayType] = "Feriado nacional")
// 10 linhasCódigo completo
M
let
fnHolidaysInPeriodPT = (StartDate as date, EndDate as date) as table =>
let
vAnos = if EndDate < StartDate then {} else {Date.Year(StartDate) .. Date.Year(EndDate)},
// Tabela vazia tipada garante as colunas mesmo sem nenhum ano
vTodos = Table.Combine(
{#table(type table [Data = date, Feriado = text, Tipo = text], {})}
& List.Transform(vAnos, fnFeriados)
),
vPeriodo = Table.SelectRows(vTodos, each [Data] >= StartDate and [Data] <= EndDate),
vRenomeado = Table.RenameColumns(vPeriodo, {{"Data", "DateReference"}, {"Feriado", "HolidayPT"}, {"Tipo", "HolidayType"}})
in
Table.Sort(vRenomeado, {{"DateReference", Order.Ascending}}),
Documentacao = [
Documentation.Name = "fnHolidaysInPeriodPT",
Documentation.Description = "Feriados nacionais e pontos facultativos do Brasil entre duas datas.",
Documentation.LongDescription = "Chama fnFeriados para cada ano do período e filtra as datas. Colunas DateReference, HolidayPT e HolidayType (Feriado nacional, Ponto facultativo ou Data comemorativa).",
Documentation.Category = "Data e hora",
Documentation.Author = "Laennder Alves, adaptado por Paulo André Jesus",
Documentation.Version = "2.0",
Documentation.Examples = {
[Description = "2024 a 2026", Code = "fnHolidaysInPeriodPT(#date(2024, 1, 1), #date(2026, 12, 31))", Result = "42 linhas (14 por ano)"],
[Description = "Só feriados nacionais", Code = "Table.SelectRows(fnHolidaysInPeriodPT(#date(2026, 1, 1), #date(2026, 12, 31)), each [HolidayType] = ""Feriado nacional"")", Result = "10 linhas"]
}
]
in
Value.ReplaceType(fnHolidaysInPeriodPT, Value.ReplaceMetadata(Value.Type(fnHolidaysInPeriodPT), Documentacao))Mais informações
- Fonte
- Laennder Alves, adaptado por Paulo André Jesus
- Versão
- 2.0