Il problema del giorno della settimana
Introduzione
Qual è il giorno della settimana che corrisponde a una certa data? Questo è un piccolo problema che, nella vita di tutti i giorni, capita spesso di dover risolvere. In genere ci si affida a una agenda, cartacea o elettronica che sia, ma la questione può essere risolta con i semplici calcoli descritti di seguito:
Calcolo del giorno della settimana
- Si prenda in considerazione una data, per esempio 12/01/1998.
- Si chiami Y il valore dell’anno ed M il valore del mese diminuito di 2, nel nostro esempio Y = 1998 ed M = 1 – 2 = –1.
- Se M <= 2 si sottragga 1 da Y e si aggiunga 12 a M, nel nostro esempio Y = 1998 – 1 = 1997 ed M = –1 + 12 = 11.
Calcolo nel calendario giuliano
Per le date del calendario giuliano (in vigore fino al 4 ottobre 1582) si procede come indicato di seguito (INT(...) indica la sola parte intera dell’espressione tra parentesi):
D = 5 + giorno + INT(Y : 4) + INT(31 × M : 12)
Calcolo nel calendario gregoriano
Per le date del calendario gregoriano (il nostro calendario in vigore dal 15 ottobre 1582) si procede invece nel modo seguente:
D = giorno + INT(Y : 4) – INT(Y : 100) + INT(Y : 400) + INT(31 × M : 12)
Nel nostro esempio:
D = 12 + 1997 + 499 – 19 + 4 + 28 = 2521
Determinazione del giorno della settimana
In entrambi i casi si divide D per 7 e si prende il resto di tale divisione: se il valore ottenuto è 0 il giorno è domenica, se 1 è lunedì, se 2 è martedì e così via. Nel nostro esempio:
2521 – INT(2521 : 7) × 7 = 2521 – 2520 = 1
Ovvero lunedì.
Osservazione
Le «variabili» letterali sono state utilizzate per rappresentare dati e risultati, come si è soliti fare con le formule delle scienze applicate o con le espressioni algebriche.
Il resto della divisione di D per 7 è stato calcolato sottraendo al valore di D la parte intera della divisione moltiplicata per 7. È questo un metodo generale: volendo, per esempio, calcolare il resto della divisione di 12 per 5, si determina il risultato della divisione (12 : 5 = 2,4), si prende la parte intera (INT(2,4) = 2), si moltiplica per 5 (2 × 5 = 10) e si sottrae il risultato da 12 (12 – 10 = 2) ottenendo il resto.