Ετοιμάστε τις εισόδους . Ο αλγόριθμος αναμένει την ημέρα , το μήνα και το έτος . Αριθμοί αλγόριθμος
Zeller είναι οι μήνες από τρεις έως 14 , αρχής γενομένης με το Μάρτιο και τελειώνει με το Φεβρουάριο . Αυτό εγγυάται ότι οι ημέρες άλμα πάντα πέφτουν στο τέλος του έτους , απλούστευση των υπολογισμών .
Αν μήνα <3 , στη συνέχεια , month = μήνα + 12 2
Υπολογίστε τον αιώνα και η χρόνια του αιώνα. Ο αιώνας για το 1950 θα πρέπει να είναι 19 , έστω και αν εμπίπτει στον εικοστό αιώνα .
Αιώνα = ορόφου (έτος /100 ) yearOfCentury = έτος mod 100 εικόνων
3
Αναζήτηση η ημέρα της εβδομάδας κατά την οποία ξεκίνησε ο αιώνα .
dayOfWeek = όροφος ( αι /4 ) + 5 * αιώνα
Zeller στο συμπέρασμα ότι αυτός ο υπολογισμός , modulo επτά , θα δώσει την ημέρα της εβδομάδα ότι κάθε δεδομένη αιώνα άρχισε . Ο υπολογισμός όροφος χειρίζεται το γεγονός ότι κάθε τέταρτο αιώνα είναι σύντομη μια μέρα άλμα .
Η 4
Υπολογίστε την ημέρα της εβδομάδας ότι η χρονιά ξεκίνησε για .
DayOfWeek = dayOfWeek + + yearOfCentury πάτωμα ( yearOfCentury /4 )
Κάθε χρόνο αρχίζει την επόμενη ημέρα της εβδομάδας σε σχέση με το προηγούμενο έτος , εκτός από τα δίσεκτα έτη . Ο υπολογισμός αυτός , modulo επτά , δίνει την ημέρα της εβδομάδας της πρώτης ημέρας του έτους .
5
Βρείτε την ημέρα της εβδομάδας ότι ο μήνας άρχισε στις .
DayOfWeek = dayOfWeek + όροφος ( ( μήνα + 1 ) * 26 ) /10 )
Αυτή είναι η καρδιά του αλγορίθμου Zeller του . Zeller παρατήρησε ότι ο υπολογισμός αυτός είναι σε θέση να προσδιορίσει σε ποια ημέρα της εβδομάδας θα ξεκινήσει ένα μήνα . Είναι εξαλείφει την ανάγκη για πίνακες αναζήτησης για να καθορίσει το μήκος του κάθε μήνα .
Η 6
Προσθέστε την ημέρα του μήνα και να υπολογίσει την ημέρα της εβδομάδας κατά την οποία η ημερομηνία συμπίπτει .
DayOfWeek = dayOfWeek + daydayOfWeek = dayOfWeek mod 7
Η 7
Μετατρέψτε την ημερομηνία στα πρότυπα ISO ημερομηνία εβδομάδα .
ISO ημερομηνία ημέρα της εβδομάδας - από - εβδομάδων αρχίσει με τη Δευτέρα = 1 . Αλγόριθμος Zeller χρησιμοποιεί Σάββατο = 0 . Η μετατροπή χρησιμοποιεί απλή αριθμητική modulo .
DayOfWeek = ( ( dayOfWeek + 5 ) mod 7 ) + 1
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα