Pour faire des opérations arithmétiques simples sur des dates, il faut penser aux jours de la semaine non pas comme des noms, mais comme des nombres.
Heureusement, c'est très facile à apprendre et à retenir.
Dans l'algorithme doomsday, chaque jour de la semaine a un numéro : dimanche vaut 0, lundi vaut 1, et ainsi de suite jusqu'à samedi qui vaut 6. Quelques moyens mnémotechniques aident à les retenir :
Vérification rapide
Quel est le numéro de jeudi ?
La compétence arithmétique de base de l'algorithme Doomsday consiste à ajouter et à retrancher des nombres à un jour de la semaine. Elle est indispensable pour arriver vite au bon jour, et demande d'être parfaitement à l'aise avec l'idée que les jours de la semaine sont des nombres.
La vitesse dépend de ton aisance avec des calculs mentaux comme mardi (2) plus 2 égale jeudi (4). Un exemple plus retors est samedi (6) plus 6 égale vendredi (5), ce qui peut sembler contre-intuitif puisque 6 + 6 font 12, pas 5. C'est là qu'intervient l'opération modulo.
Le modulo, c'est simplement le reste d'une division. Dans la règle doomsday, quand tu ajoutes des jours à une date, tu divises le nombre total de jours par 7 (la semaine en compte 7) et le reste te donne le bon jour de la semaine.
Par exemple, pour samedi (6) plus 6, tu calcules 6 + 6 = 12. Divise ensuite 12 par 7 : le quotient est 1 (une semaine complète) et le reste est 5. Donc 12 modulo 7 vaut 5, ce qui correspond à vendredi. samedi plus 6 jours tombe bien un vendredi.
Cette opération modulo garantit que, quel que soit le nombre de jours ajoutés, tu retombes toujours sur un jour de la semaine valide. C'est comme une horloge qui repart de zéro après le plus grand nombre — ici samedi (6).
Autre exemple : si on est mercredi (3) et que tu cherches le jour 10 jours plus tard, tu calcules 3 + 10 = 13. Avec le modulo, 13 modulo 7 vaut 6, soit samedi.
La clé pour maîtriser l'algorithme doomsday est donc de faire ces modulos vite et sans effort. Plus tu t'entraînes, plus il devient facile de connaître instantanément le jour de la semaine de n'importe quelle date.