Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Computer Programming Languages >> .

Come calcolare il giorno della settimana per ogni anno

Un algoritmo comune per calcolare il giorno della settimana di una data particolare, è l'algoritmo di Zeller . L'algoritmo è stato pubblicato nel 1882 e progettato per essere lavorato a mano, ma può essere facilmente implementato in software . L'algoritmo di Zeller funziona trovando il giorno della settimana del secolo iniziò , poi costruire da lì con l'aggiunta di anni, mesi e giorni. Una buona comprensione di aritmetica modulare è necessario capire come funziona l'algoritmo , ma chiunque può applicare l'adesivo seguendo le istruzioni . Istruzioni
1

Preparare gli ingressi . L'algoritmo si aspetta un giorno , mese e anno . Numeri algoritmo

di Zeller i mesi da tre a 14 , a partire da marzo e termina a febbraio . Questo garantisce che i giorni bisestili cadono sempre alla fine dell'anno , semplificando i calcoli .

Mese < 3 allora , mese = mese + 12
2

Calcolare il secolo e il anno del secolo . Il secolo, per il 1950 dovrebbe essere di 19 , anche se cade nel ventesimo secolo .

Secolo = piano ( anno /100 ) yearOfCentury = anno mod 100
3

Trova il giorno della settimana in cui il secolo iniziato .

dayOfWeek = piano ( sec /4) + 5 * secolo

Zeller ha determinato che questo calcolo , modulo sette , darà il giorno della settimana che ogni secolo ha iniziato . Il calcolo piano gestisce il fatto che ogni quarto secolo è corta giorno intercalare .
4

Calcola il giorno della settimana che l'anno è iniziato il .

DayOfWeek = dayOfWeek yearOfCentury + + piano ( yearOfCentury /4 ) per

Ogni anno inizia il giorno successivo della settimana rispetto all'anno precedente , tranne che per gli anni bisestili . Questo calcolo , modulo sette , dà il giorno della settimana del primo giorno dell'anno .
5

trovare il giorno della settimana in cui il mese è iniziato il .

DayOfWeek = dayOfWeek + piano ( ( mese + 1) * 26 ) /10 ) per

Questo è il cuore dell'algoritmo di Zeller . Zeller ha osservato che questo calcolo è in grado di determinare in quale giorno della settimana avrà inizio un mese . Si elimina la necessità di tabelle di ricerca per determinare la lunghezza di ogni mese .
6

Aggiungi il giorno del mese e calcolare il giorno della settimana in cui cade la data .

DayOfWeek = dayOfWeek + daydayOfWeek = dayOfWeek mod 7 foto Il 7

convertire la data di norme setti ISO .

ISO data settimana del giorno della settimana inizia con Lunedi = 1 . L'algoritmo di Zeller usa Sabato = 0 . La conversione utilizza l'aritmetica semplice modulo .

DayOfWeek = ( ( dayOfWeek + 5) mod 7) + 1

 

Programmazione © www.354353.com