let
Source = Excel.CurrentWorkbook(){[Name="COL_ANS"]}[Content],
COL_BUTCH = Table.AddColumn(Source, "Date de Pâques (Butcher)", each
let
Year = [ANNEES],
a = Number.Mod(Year, 19),
b = Number.IntegerDivide(Year, 100),
c = Number.Mod(Year, 100),
d = Number.IntegerDivide(b, 4),
e = Number.Mod(b, 4),
f = Number.IntegerDivide(b + 8, 25),
g = Number.IntegerDivide(b - f + 1, 3),
h = Number.Mod(19 * a + b - d - g + 15, 30),
i = Number.IntegerDivide(c, 4),
k = Number.Mod(c, 4),
l = Number.Mod(32 + 2 * e + 2 * i - h - k, 7),
m = Number.IntegerDivide(a + 11 * h + 22 * l, 451),
Month = Number.IntegerDivide(h + l - 7 * m + 114, 31),
Day = Number.Mod(h + l - 7 * m + 114, 31) + 1
in
#date(Year, Month, Day)
),
COL_GAUSS = Table.AddColumn(COL_BUTCH, "Date de Pâques (Gauss)", each
let
annee = [ANNEES],
a = Number.Mod(annee, 19),
b = Number.Mod(annee, 4),
c = Number.Mod(annee, 7),
k = Number.IntegerDivide(annee, 100),
p = Number.IntegerDivide(13 + 8 * k, 25),
q = Number.IntegerDivide(k, 4),
M = Number.Mod(15 - p + k - q, 30),
N = Number.Mod(4 + k - q, 7),
d = Number.Mod(19 * a + M, 30),
e = Number.Mod(2 * b + 4 * c + 6 * d + N, 7),
mars = 22 + d + e,
datePaques = if mars <= 31 then
#date(annee, 3, mars)
else
#date(annee, 4, mars - 31)
in
datePaques
),
FIN_B = Table.TransformColumnTypes(COL_GAUSS, {{"Date de Pâques (Butcher)", type date}}),
FIN_G= Table.TransformColumnTypes(FIN_B, {{"Date de Pâques (Gauss)", type date}}),
FIN = FIN_G,
COMPARAISON = Table.AddColumn(FIN, "COMPARAISON", each if [#"Date de Pâques (Butcher)"] = [#"Date de Pâques (Gauss)"] then "OK" else "PAS OK"),
FILTRAGE = Table.SelectRows(COMPARAISON, each ([COMPARAISON] = "PAS OK"))
in
FILTRAGE