On this page
article
Calendario
Sobre
Congruencia de Zeller
Os dias da semana correspondem aos restos % 7
Segunda=0, Terca=1, …, Domingo=6
Link original: calendario.cpp
Código
int get_id(int d, int m, int y) {
if (m < 3) y--, m += 12;
return 365 * y + y / 4 - y / 100 + y / 400 + (153 * (m - 3) + 2) / 5 + d - 307;
}
tuple<int, int, int> date(int id) {
int x = id + 1789995, n = 4 * x / 146097, i, j, d, m, y;
x -= (146097 * n + 3) / 4;
i = (4000 * (x + 1)) / 1461001;
x -= 1461 * i / 4 - 31;
j = 80 * x / 2447, d = x - 2447 * j / 80;
x = j / 11;
m = j + 2 - 12 * x, y = 100 * (n - 49) + i + x;
return {d, m, y};
}