Python's Ημερολόγιο Η ενότητα αυτή είναι μέρος της συνηθισμένης βιβλιοθήκης. Επιτρέπει την παραγωγή ενός ημερολογίου ανά μήνα ή ανά έτος και παρέχει επίσης άλλες λειτουργίες που σχετίζονται με το ημερολόγιο.
ο Ημερολόγιο εξαρτάται από την ενότητα ημερομηνίας. Αλλά θα χρειαστεί επίσης ημερομηνία ώρα για δικούς μας σκοπούς αργότερα, οπότε είναι καλύτερο να εισαγάγετε και τα δύο. Επίσης, για να κάνουμε κάποια διάσπαση string, θα χρειαστούμε το σχετικά με μονάδα μέτρησης. Ας εισαγάγουμε όλα αυτά με ένα πάτημα.
Από προεπιλογή, τα ημερολόγια ξεκινούν την εβδομάδα με τη Δευτέρα (ημέρα 0), ανά ευρωπαϊκή σύμβαση και τελειώνουν με την Κυριακή (ημέρα 6). Αν προτιμάτε την Κυριακή ως την πρώτη ημέρα της εβδομάδας, χρησιμοποιήστε το setfirstweekday () για να αλλάξετε την προεπιλεγμένη τιμή έως την ημέρα 6 ως εξής:
Για εναλλαγή μεταξύ των δύο, θα μπορούσατε να περάσετε την πρώτη ημέρα της εβδομάδας ως επιχείρημα χρησιμοποιώντας το sys μονάδα μέτρησης. Στη συνέχεια, θα ελέγξετε την τιμή με ένα αν και ρυθμίστε το setfirstweekday () μέθοδο.
Στο ημερολόγιό μας, θα ήταν ωραίο να έχουμε μια κεφαλίδα για το ημερολόγιο που διαβάζει κάτι σαν "Ένα ημερολόγιο που δημιουργείται από Python For ..." και έχει τον τρέχοντα μήνα και έτος. Για να το κάνουμε αυτό, πρέπει να πάρουμε το μήνα και το έτος από το σύστημα. Αυτή η λειτουργικότητα είναι κάτι τέτοιο Ημερολόγιο παρέχει, Python μπορεί να ανακτήσει το μήνα και το έτος. Αλλά έχουμε ακόμα ένα πρόβλημα. Δεδομένου ότι όλες οι ημερομηνίες του συστήματος είναι αριθμητικές και δεν περιέχουν μη συντομευμένες ή μη αριθμητικές μορφές των μηνών, χρειαζόμαστε μια λίστα με αυτούς τους μήνες. Εισαγάγετε τη λίστα έτος.
Τώρα όταν λάβουμε τον αριθμό ενός μήνα, μπορούμε να έχουμε πρόσβαση στον αριθμό (μείον ένα) στη λίστα και να πάρουμε το πλήρες όνομα του μήνα.
Περιέργως, το ημερομηνία ώρα η ενότητα έχει ένα ημερομηνία ώρα τάξη. Από αυτή την κατηγορία ονομάζουμε δύο αντικείμενα: τώρα() και ημερομηνία(). Η μέθοδος datetime.datetime.now () επιστρέφει ένα αντικείμενο που περιέχει τις ακόλουθες πληροφορίες: έτος, μήνα, ημερομηνία, ώρα, λεπτό, δευτερόλεπτο και μικροδευτερόλεπτα. Φυσικά, δεν έχουμε ανάγκη από πληροφορίες χρόνου. Για να εξαλείψουμε μόνο τις πληροφορίες ημερομηνίας, περάσαμε τα αποτελέσματα τώρα() προς το datetime.datetime.date () ως επιχείρημα. Το αποτέλεσμα είναι αυτό σήμερα τώρα περιέχει το έτος, το μήνα και την ημερομηνία που διαχωρίζονται με em-dashes.
Για να σπάσουμε αυτό το κομμάτι των δεδομένων σε πιο διαχειρίσιμα κομμάτια, πρέπει να το χωρίσουμε. Στη συνέχεια, μπορούμε να αναθέσουμε τα τμήματα στις μεταβλητές current_yr, current_month, και current_day αντίστοιχα.
Για να κατανοήσετε την πρώτη γραμμή αυτού του κώδικα, εργάζονται από τα δεξιά προς τα αριστερά και από μέσα προς τα έξω. Πρώτον, ορίζουμε το αντικείμενο σήμερα για να λειτουργήσει σε αυτό ως μια χορδή. Στη συνέχεια, το χωρίσαμε χρησιμοποιώντας το em-dash ως έναν απομεμακρυστή ή ένα διακριτικό. Τέλος, αναθέτουμε αυτές τις τρεις τιμές ως μια λίστα με το 'τρέχον'.
Προκειμένου να αντιμετωπίσουμε αυτές τις αξίες πιο ξεκάθαρα και να αποκαλύψουμε το μακρύ όνομα του τρέχοντος μήνα από έτος, αναθέτουμε τον αριθμό του μήνα στον current_no. Μπορούμε τότε να κάνουμε μια μικρή αφαίρεση στο δείκτη του έτος και ορίστε το όνομα του μηνύματος στο current_month.
Στην επόμενη γραμμή, απαιτείται κάποια υποκατάσταση. Η ημερομηνία από την οποία επιστρέφεται ημερομηνία ώρα είναι μια διψήφια τιμή ακόμη και για τις πρώτες εννιά ημέρες του μήνα. Ένα μηδέν λειτουργεί ως κάτοχος θέσης, αλλά θα προτιμούσαμε το ημερολόγιό μας να έχει μόνο το μονοψήφιο. Επομένως δεν αντικαθιστούμε καμία τιμή για κάθε μηδέν που ξεκινάει μια συμβολοσειρά (εξ ου και '\ A'). Τέλος, αναθέτουμε το έτος στο current_yr, μετατρέποντας το σε έναν ακέραιο κατά μήκος του δρόμου.
Οι μέθοδοι που θα καλέσουμε αργότερα θα απαιτήσουν εισαγωγή σε μορφή ακέραιου τύπου. Ως εκ τούτου, είναι σημαντικό να διασφαλιστεί ότι όλα τα δεδομένα ημερομηνίας αποθηκεύονται σε ακέραιο, όχι σε μορφή συμβολοσειράς.
Πριν εκτυπώσουμε το ημερολόγιο, πρέπει να εκτυπώσουμε τοHTML προοίμιο και CSS διάταξη για το ημερολόγιό μας. Μεταβείτε σε αυτήν τη σελίδα για τον κωδικό για να εκτυπώσετε το προοίμιο CSS και HTML για το ημερολόγιο. και αντιγράψτε τον κώδικα στο αρχείο του προγράμματος. Το CSS στην HTML αυτού του αρχείου ακολουθεί το πρότυπο που προσφέρει η Jennifer Kyrnin, Ο οδηγός Σχετικά με το Web Design. Εάν δεν καταλαβαίνετε αυτό το μέρος του κώδικα, ίσως θελήσετε να συμβουλευτείτε τις βοηθές της για την εκμάθηση CSS και HTML. Τέλος, για να προσαρμόσετε το όνομα του μήνα, χρειαζόμαστε την ακόλουθη γραμμή:
Τώρα που εξάγεται η βασική διάταξη, μπορούμε να ρυθμίσουμε το ίδιο το ημερολόγιο. Ένα ημερολόγιο, στο πιο βασικό του σημείο, είναι ένας πίνακας. Ας φτιάξουμε ένα τραπέζι στο HTML μας:
Τώρα πρέπει να δημιουργήσουμε το πραγματικό ημερολόγιο. Για να λάβουμε τα πραγματικά δεδομένα του ημερολογίου, χρειαζόμαστε το Ημερολόγιο της μονάδας monthcalendar () μέθοδος. Αυτή η μέθοδος παίρνει δύο επιχειρήματα: το έτος και το μήνα του επιθυμητού ημερολογίου (και σε δύο μορφές). Επιστρέφει μια λίστα που περιέχει καταλόγους των ημερομηνιών του μήνα από την εβδομάδα. Επομένως, αν υπολογίσουμε τον αριθμό των στοιχείων στην επιστρεφόμενη αξία, έχουμε τον αριθμό των εβδομάδων στον συγκεκριμένο μήνα.
Γνωρίζοντας τον αριθμό των εβδομάδων του μήνα, μπορούμε να δημιουργήσουμε ένα Για βρόχο που μετράει μέσω a εύρος() από το 0 έως τον αριθμό των εβδομάδων. Όπως συμβαίνει, θα εκτυπώσει το υπόλοιπο του ημερολογίου.
Αφού ξεκινήσει αυτό το εύρος, απομακρύνονται οι ημερομηνίες της εβδομάδας μήνας ανάλογα με την αξία του μετρητή και έχει εκχωρηθεί εβδομάδα. Στη συνέχεια, δημιουργείται μια πινακοειδή σειρά για να διατηρούνται οι ημερομηνίες ημερολογίου.
ΕΝΑ Για Ο βρόχος περνά από τις ημέρες της εβδομάδας, ώστε να μπορούν να αναλυθούν. ο Ημερολόγιο η μονάδα εκτυπώνει ένα '0' για κάθε ημερομηνία στον πίνακα που δεν έχει έγκυρη τιμή. Μια κενή τιμή θα λειτουργούσε καλύτερα για τους σκοπούς μας, έτσι ώστε να εκτυπώνουμε τα bookends των πινακοποιημένων δεδομένων χωρίς αξία για αυτές τις ημερομηνίες.
Στη συνέχεια, εάν η ημέρα είναι η τρέχουσα, θα πρέπει να το επισημάνουμε κάπως. Βασισμένο στο td τάξη σήμερα, το CSS αυτής της σελίδας θα προκαλέσει την απόδοση της τρέχουσας ημερομηνίας σε σκούρο φόντο αντί για το ανοιχτό φόντο των άλλων ημερομηνιών.
Τέλος, αν η ημερομηνία είναι μια έγκυρη τιμή και δεν είναι η τρέχουσα ημερομηνία, εκτυπώνεται ως πίνακες δεδομένων. Οι ακριβείς συνδυασμοί χρωμάτων για αυτούς βρίσκονται στο προοίμιο του στυλ CSS.
Απλά αυτό το απλό ημερολόγιο μπορεί να χρησιμοποιηθεί με οποιονδήποτε τρόπο που χρειάζεται εκπροσώπηση ημερολογίου. Με την υπερσύνδεση των ημερομηνιών στην HTML, μπορείτε εύκολα να δημιουργήσετε μια λειτουργικότητα ημερολογίου. Εναλλακτικά, μπορεί κανείς να ελέγξει εναντίον αρχείου ημερολογίου και στη συνέχεια να αναλύσει ποιες ημερομηνίες λαμβάνονται από το χρώμα τους. Ή, αν κάποιος μετατρέπει αυτό το πρόγραμμα σε ένα σενάριο CGI, μπορεί κανείς να το δημιουργήσει εν πτήσει.