Mi sono imbattuto per caso in un algoritmo, ideato da John Conway, per il calcolo mentale del giorno della settimana relativo ad una certa data. Esso si basa sul fatto che in un qualsiasi anno alcune date, facili da ricordare, cadono sempre nello stesso giorno: ad esempio, l’ultimo giorno di febbraio e il 4/4, 6/6, 8/8, 10/10, 12/12, più alcune altre di cui parleremo più avanti. Questo giorno è chiamato “Doomsday” (“Il giorno del giudizio”).
Il primo passo consiste nel trovare un giorno di riferimento (anchor) in base al secolo, e da questo calcolare il Doomsday. L’anchor si trova in base alle corrispondenze:
- 1800-1899: venerdì
- 1900-1999: mercoledì
- 2000-2099: martedì
- 2100-2199: domenica
Il ciclo si ripete ogni 400 anni, per cui l’anchor per gli anni 1500-1599 sarà lo stesso degli anni 1900-1999, ossia mercoledì.
Trovato l’anchor, si considerano le ultime due cifre dell’anno dato e si sommano alla parte intera della loro divisione per 4: il risultato andrà diviso per 7; detto R il resto della divisione, si conteranno (in avanti) R giorni a partire dall’anchor per trovare il Doomsday.
Ora, basta ricordare che sul Doomsday cadono sempre le seguenti date:
- il 3 gennaio negli anni comuni, il 4 gennaio negli anni bisestili;
- l’ultimo giorno di febbraio (29 compreso)
- il 4 aprile
- il 9 maggio (9/5)
- il 6 giugno
- l’11 luglio (11/7)
- l’8 agosto
- il 5 settembre (5/9)
- il 10 ottobre
- il 7 novembre (7/11)
- il 12 dicembre.
Il che non è difficile da memorizzare se si pensa che nei mesi pari (escluso febbraio) abbiamo coppie di numeri uguali: 4/4, 6/6, ecc. Per gli altri mesi, basta ricordare 9/5 e 5/9, 11/7 e 7/11; l’ultimo giorno di febbraio (o, per estensione all’indietro, la pseudodata 0 Marzo); il 3 gennaio; il 4 gennaio per gli anni bisestili (divisibili appunto per 4).
Infine dal Doomsday si trova facilmente qualsiasi data.
Nota. L’algoritmo vale per il calendario Gregoriano, introdotto nel mese di ottobre 1582. Per date precedenti, cioè riferite al calendario Giuliano, si deve far arretrare il Doomsday di 10 giorni (o di 3, in termini equivalenti).
Un esempio
Vogliamo trovare in che giorno cadeva il 12 ottobre 1492, giorno della scoperta dell’America.
Calcolo dell’anchor
Per gli anni 1400-1499 l’anchor è un venerdì (lo stesso di 1800-1899).
Calcolo del Doomsday
(92 + int(92/4) ) mod 7 = 113 mod 7 = 1
dove con int si è indicata la parte intera, con mod il resto della divisione. Sommiamo quindi 1 giorno a venerdì, per ottenere sabato. Ricordiamoci di applicare la correzione per il calendario Giuliano, quindi sabato meno 3 giorni fa mercoledì. Il Doomsday più vicino alla data da calcolare è il 10 ottobre.
Calcolo finale
Dato che il 10 ottobre 1492 cadeva di mercoledì, il 12 ottobre era pertanto un venerdì.
(Un grazie ad Antonio per la precisazione sul calendario Giuliano!)
Lascia un commento