Accéder au contenu principal

Calculer la date de Pâques pour n’importe quelle année

Établie au concile de Nicée en 325, la date officielle du dimanche de Pâques sert de référence pour fixer les dates de plusieurs jours fériés. En France, il y a le lundi de Pâques (i.e. le lendemain), le jeudi de l’Ascension (39 jours après) et le lundi de Pentecôte (50 jours après) ; aux États-Unis, le Good Friday tombe le vendredi qui précède le dimanche de Pâques (soit deux jours avant). Problème : calculer la date de Pâques est affreusement compliqué.

Fort heureusement, quelques brillants esprits s'y sont collés avant nous et nous ont livré des algorithmes capables de déterminer cette date précisément, sans avoir recours aux redoutables méthodes canoniques que je vous laisse découvrir par vos propres moyens. Je vous propose ci-dessous la méthode dite de Butcher [1] codée sous R : elle permet, pour n’importe quelle année, de trouver la date du dimanche de Pâques dans le calendrier Grégorien.

EasterSunday = function(year) {
 a <- year%%19
 b <- floor(year/100)
 c <- year%%100
 d <- (19*a+b-floor(b/4)-floor((b-floor((b+8)/25)+1)/3)+15)%%30
 e <- (32+2*(b%%4)+2*floor(c/4)-d-c%%4)%%7
 f <- floor((a+11*d+22*e)/451)
 month <- floor((d+e-7*f+114)/31)
 day <- (d+e-7*f+114)%%31+1
 Date(year, month, day)
}

Notez que la fonction Date utilisée ci-dessus est aussi de moi. Voici le code :

Date = function(year, month, day) {
 m <- formatC(month, width = 2, flag = "0")
 d <- formatC(day, width = 2, flag = "0")
 as.Date(paste(year, m, d, sep = "-"))
}

Vous pouvez ainsi vérifier que :

> EasterSunday(2017)
[1] "2017-04-16"
>

Elle fonctionne aussi avec des vecteurs :

> EasterSunday(1515:1518)
[1] "1515-04-11" "1516-04-02" "1517-04-22" "1518-04-07"
> 

For English-speaking readers: this is an R function to compute the date of Easter Sunday in the Gregorian calendar for any given year using Butcher’s algorithm.

---
[1] Cet algorithme a été publié en 1876 par un auteur inconnu dans Nature ; C'est donc Samuel Butcher, évêque de Meath qui a démontré qu’elle est exacte en 1877, qui lui donne son nom.

Commentaires

Posts les plus consultés de ce blog

Brandolini’s law

Over the last few weeks, this picture has been circulating on the Internet. According to RationalWiki, that sentence must be attributed to Alberto Brandolini, an Italian independent software development consultant [1]. I’ve checked with Alberto and, unless someone else claims paternity of this absolutely brilliant statement, it seems that he actually is the original author. Here is what seems to be the very first appearance of what must, from now on, be known as the Brandolini’s law (or, as Alberto suggests, the Bullshit Asymmetry Principle):The bullshit asimmetry: the amount of energy needed to refute bullshit is an order of magnitude bigger than to produce it.— ziobrando (@ziobrando) 11 Janvier 2013To be sure, a number of people have made similar statements. Ironically, it seems that the “a lie can travel halfway around the world while the truth is still putting on its shoes” quote isn’t from Mark Twain but a slightly modified version of Charles Spurgeon’s “a lie will go round the w…

Le socios de Le Média

Pour devenir socio de Le Média, la future web-TV des amis de M. Mélenchon, vous devez (i) acquérir un ou plusieurs titres de propriété de Le Média (5 euros l’unité) et (ii) régler une contribution destinée à « financer le Média » (en fonction de vos revenus de 50, 80, 120 ou 200 euros). C’est le paiement de ces deux sommes, appelé droit d’entrée, qui fait de vous un socio. Les conditions générales stipulent très clairement qu’aucune cotisation n’est demandée.En contrepartie, vous promettent-ils, vous deviendrez propriétaire du nouveau média (selon la homepage) ou, du moins, d’une partie de celui-ci via l’association « Le Média » (selon la page socios, j'y reviens) et vous bénéficierez d’un certain nombre de « services exclusifs » comme, par exemple, le droit de publier un avis et de commenter les programmes ou, plus prosaïquement, celui d’avoir votre nom au générique d’un programme de votre choix.À l’heure où j’écris ces lignes, Le Média revendique 9 421 socios pour 1 117 972 eur…

Les prix « avant l’euro »

(J’ai l’intention de compléter cet article au fur et à mesure. Si vous avez des prix à proposer (avec des sources crédibles), n’hésitez pas à le me suggérer dans les commentaires.)L’euro a été introduit en deux temps. La première étape a eu lieu le 1er janvier 1999 à minuit, quand le taux de change irrévocable des différentes monnaies nationales par rapport à l’euro a été fixé définitivement — soit, pour ce qui nous concerne, 1 euro = 6.55957 francs. La seconde étape, l’introduction des pièces et billets en euro, s’est étalée sur un mois et demi : du 1er janvier 2002 au 17 février 2002 ; date à laquelle les espèces en franc ont été privées du cours légal [1] — c’est-à-dire qu’il était interdit de les utiliser ou de les accepter en règlement d’une transaction.SalairesÀ compter du 1er juillet 2000, le SMIC horaire brut était fixé à 42.02 francs soit, pour avec une durée légale du travail de 39 heures par semaine (169 heures par mois), 7 101.38 francs bruts par mois. Le 1er juillet 2001,…