Coding for KidsCoding for Kids
Δημιουργικά ΕπίπεδαΠροκλήσειςΟδηγός Εκπαιδευτικού
Ψηφίστε για λειτουργίες
Προχωρημένο Μάθημα Ανάπτυξης σε Python
Κεφάλαιο
>
Επίπεδο

Μονάδες Συμβολοσειρών και Χρόνου
Μονάδα Ημερομηνίας/Ώρας

Στόχος

Προσαρμόστε τα αρχεία και ρυθμίστε τις ημερομηνίες αποστολής των προμηθειών χρησιμοποιώντας τις λειτουργίες του module Date & Time.

Το κατώτερο επίπεδο του προσθέματος της νέας κατασκευαστικής περιοχής είναι μια αποθήκη που περιέχει μερικές από τις πρόσφατα παραληφθείσες προμήθειες που έχουν συσκευαστεί και είναι έτοιμες για αποστολή σε περιοχές γύρω από τη νέα κατασκευή. Πρέπει να επιγραφούν με τις σωστές ημερομηνίες και ώρες τους, και να διασφαλιστεί ότι οι ετικέτες που έχουν ήδη εφαρμοστεί περιέχουν όλες τις σχετικές πληροφορίες. Για να γίνει αυτό, θα μπορούσαμε να αφιερώσουμε χρόνο γράφοντας και μορφοποιώντας χειροκίνητα τις ημερομηνίες και τις ώρες, αλλά υπάρχει ένας πολύ ταχύτερος τρόπος, χρησιμοποιώντας το module της ημερομηνίας και ώρας.

Το module της ημερομηνίας και ώρας εισάγεται γράφοντας import datetime, το οποίο ξεκλειδώνει μια σειρά από ισχυρές λειτουργίες που σας επιτρέπουν να διαβάζετε και να ορίζετε μορφοποιημένες ώρες και ημερομηνίες οι οποίες μπορείτε να αποθηκεύσετε σε αντικείμενα. Μπορείτε επίσης να χρησιμοποιήσετε: from datetime import timezone, timedelta προκειμένου να ορίσετε ζώνες ώρας. Οι παρακάτω λειτουργίες ξεκλειδώνονται με την εισαγωγή του module:

  • datetime.datetime(): Σας επιτρέπει να ορίσετε και να αποθηκεύσετε μια ώρα της επιλογής σας, λαμβάνοντας αρκετά επιχειρήματα ως εξής: year, month, day, hour, minute, second, microsecond, timezone. Δεν χρειάζεται να εισάγετε όλα τα επιχειρήματα, αλλά μόνο αυτά που επιθυμείτε να χρησιμοποιήσετε.
  • datetime.datetime.now(): Επιστρέφει την τρέχουσα ημερομηνία και ώρα όπως θα εμφανιζόταν σε ένα ρολόι.
  • datetime.datetime.date(): Επιστρέφει μόνο την ημερομηνία, χωρίς την ώρα.
  • datetime.datetime.time(): Επιστρέφει μόνο την ώρα, χωρίς την ημερομηνία.
  • datetime.datetime.timestamp(): Επιστρέφει το timestamp της ημερομηνίας ως κώδικα UNIX.
  • timezone(): Σας επιτρέπει να ορίσετε μια ζώνη ώρας για χρήση με τα επιχειρήματα ημερομηνίας και ώρας.
  • datetime.strftime(): Σας επιτρέπει να εξάγετε συγκεκριμένες πληροφορίες ημερομηνίας και ώρας και να τις μορφοποιήσετε όπως επιθυμείτε χρησιμοποιώντας συγκεκριμένους κωδικούς. Για τους σκοπούς μας θα χρησιμοποιήσουμε τους εξής κωδικούς:
    • "%a": Ημέρα της εβδομάδας, συντομευμένη
    • "%d": Ημέρα του μήνα
    • "%B": Όνομα μήνα, γραμμένο πλήρως
    • "%I": Ώρα, σε 12ωρο κύκλο
    • "%M": Λεπτό
    • "%p": Meridian, AM/PM
    • "%x": Τοπική μορφή ημερομηνίας
    • "%X": Τοπική μορφή ώρας
    • "%j": Ημέρα του έτους
    • "%U": Εβδομάδα του έτους
    • "%z": Ζώνη ώρας UTC

Για να ξεκινήσετε, περπατήστε μέχρι το ελαφρύ σημάδι X και στραφτείτε προς το γραφείο, χρησιμοποιήστε τη συνάρτηση read() για να ελέγξετε τις ημερομηνίες συσκευασίας για τις αποστολές καθώς και τις ημερομηνίες έναρξης και λήξης των έργων. Κρατήστε σημειώσεις για τις ημερομηνίες έναρξης και λήξης που παρέχονται στο έγγραφο (μήνας/ημέρα/έτος). Τα τρία (3) πρώτα σημεία δεδομένων που είναι γραμμένα στο σημείωμα καθώς και η ζώνη ώρας έχουν προεγγραφεί στον επεξεργαστή κώδικα για ευκολία χρήσης σε επόμενες λειτουργίες.

Σε αυτόν τον ίδιο χώρο, δημιουργήστε μια μεταβλητή με όνομα today και αποθηκεύστε σε αυτήν την τιμή που επιστρέφει η datetime.datetime.now(). Χρησιμοποιήστε το str() για να μετατρέψετε την τιμή σε συμβολοσειρά ώστε να είναι σε αναγνώσιμη μορφή, όπως: today = str(datetime.datetime.now()). Χρησιμοποιήστε τη συνάρτηση display() για να καταγράψετε την ημερομηνία της ημέρας στο σημείωμα, έτσι ορίζεται η ημερομηνία για τους καταμερισμούς αποστολής και μπορείτε να αρχίσετε να προσθέτετε τα ελλείποντα σημεία δεδομένων στα απαραίτητα πεδία.

Περπατήστε μέχρι το χρυσό σημάδι X δίπλα στο γραφείο και εδώ θα υπολογίσουμε και θα καταγράψουμε τον αριθμό των ημερών που θα διαρκέσει αυτό το έργο. Υπάρχουν δύο μεταβλητές γραμμένες στον επεξεργαστή με ονόματα start και end που αποθηκεύουν datetime. Γράψτε τις ημερομηνίες έναρξης και λήξης που διαβάσατε προηγουμένως στα διαθέσιμα πεδία. Δημιουργήστε μια μεταβλητή με όνομα result και αποθηκεύστε εκεί το αποτέλεσμα της αφαίρεσης μεταξύ των μεταβλητών end και start. Χρησιμοποιήστε τη συνάρτηση str() για να μετατρέψετε την τιμή σε αναγνώσιμη μορφή συμβολοσειράς, όπως: result = str(end-start). Χρησιμοποιήστε τη συνάρτηση write() για να καταγράψετε τη μεταβλητή result, ώστε να σημειωθεί πόσο θα διαρκέσει αυτό το έργο.

Από εδώ θα προχωρήσουμε στο χρυσό σημάδι X δίπλα στο κόκκινο χαλί και θα προχωρήσουμε προς τα κάτω στα σημάδια X δίπλα στα κουτιά του κόκκινου χαλιού στη στήλη στα αριστερά. Εδώ θα προσθέσουμε συγκεκριμένα στοιχεία των ημερομηνιών συσκευασίας που λείπουν από τα κουτιά χρησιμοποιώντας datetime(). Στον επεξεργαστή θα υπάρχει μια προεγγραφείσα ημερομηνία που έχει εκχωρηθεί στη μεταβλητή red_date, από την οποία θα εξάγουμε διάφορα δεδομένα και θα τα χρησιμοποιήσουμε για την επιγραφή των κουτιών.

Για τα κόκκινα χαλιά:

  • Στο χρυσό σημάδι X, στραφτείτε προς τα κουτιά και δημιουργήστε μια μεταβλητή με όνομα red_days στην οποία θα αποθηκεύσετε την ημερομηνία χωρίς την ώρα, χρησιμοποιώντας τη date() από τη μεταβλητή red_date και, μετατρέψτε την σε συμβολοσειρά με τη χρήση του str(), όπως: red_days = str(red_date.date()). Χρησιμοποιήστε τη συνάρτηση write() για να επισημάνετε τα κουτιά χρησιμοποιώντας red_days.
  • Στο ελαφρύ σημάδι X, στραφτείτε προς τα κουτιά και δημιουργήστε μια μεταβλητή με όνομα red_time στην οποία θα αποθηκεύσετε την ώρα χωρίς την ημερομηνία, χρησιμοποιώντας τη time() από τη μεταβλητή red_date και μετατρέψτε την με τη χρήση του str(), όπως: red_time = str(red_date.time()). Χρησιμοποιήστε τη συνάρτηση write() για να επισημάνετε τα κουτιά χρησιμοποιώντας red_time.
  • Στο σκούρο σημάδι X, στραφτείτε προς τα κουτιά και δημιουργήστε μια μεταβλητή με όνομα red_timestamp στην οποία θα αποθηκεύσετε το timestamp που υπολογίζεται από τη μεταβλητή red_date, όπως: red_timestamp = red_date.timestamp(). Χρησιμοποιήστε τη συνάρτηση write() για να επισημάνετε τα κουτιά χρησιμοποιώντας red_timestamp.

Συνεχίστε περνώντας στα σημάδια X μπροστά από τα κουτιά του μπλε χαλιού. Όπως και πριν, υπάρχει μια σειρά από τρία (3) έγχρωμα σημάδια X, σε αυτήν την περίπτωση αναφερόμενα στη προ-γραμμένη μεταβλητή blue_date για να ολοκληρωθούν οι ετικέτες. Διατρέξτε τη στήλη και χρησιμοποιήστε τη συνάρτηση strftime() για να προσθέσετε τα ελλείποντα στοιχεία στις ετικέτες αποστολής. Σε αντίθεση με τις προηγούμενες λειτουργίες, αυτή απαιτεί συγκεκριμένο κώδικα για να εξαχθούν και να μορφοποιηθούν τα στοιχεία στην επιλεγμένη ημερομηνία. Για παράδειγμα, εάν θέλουμε να πάρουμε την ημέρα της εβδομάδας για τη μεταβλητή blue_date, θα χρησιμοποιήσετε τον κώδικα "%a" με τη συνάρτηση strftime() ως εξής: blue_date.strftime("%a").

Για τα σημάδια X δίπλα στα κουτιά του μπλε χαλιού, χρησιμοποιήστε τη συνάρτηση strftime() με τον απαιτούμενο συγκεκριμένο κώδικα. Εξετάστε τη λίστα κωδικών που περιγράφηκε προηγουμένως ανάλογα με τις απαιτήσεις. Για τα μπλε χαλιά:

  • Στο χρυσό σημάδι X, στραφτείτε προς τα κουτιά και δημιουργήστε μια μεταβλητή με όνομα blue_weekday στην οποία θα αποθηκεύσετε την ημέρα της εβδομάδας χρησιμοποιώντας τη συνάρτηση strftime() από τη μεταβλητή blue_date, όπως: blue_day = blue_date.strftime("%a"). Δημιουργήστε μια άλλη μεταβλητή με όνομα blue_day και αποθηκεύστε την ημέρα του μήνα χρησιμοποιώντας τη συνάρτηση strftime() από τη μεταβλητή blue_date. Δημιουργήστε μια ακόμη μεταβλητή με όνομα blue_month και αποθηκεύστε το όνομα του μήνα, γραμμένο πλήρως, χρησιμοποιώντας τη συνάρτηση strftime() από τη μεταβλητή blue_date. Εισάγετε τις μεταβλητές blue_weekday, blue_day και blue_month στη προ-γραμμένη συνάρτηση write().
  • Στο ελαφρύ σημάδι X, στραφτείτε προς τα κουτιά και δημιουργήστε μια μεταβλητή με όνομα blue_hour στην οποία θα αποθηκεύσετε την ώρα, σε 12ωρο κύκλο, χρησιμοποιώντας τη συνάρτηση strftime() από τη μεταβλητή blue_date. Δημιουργήστε μια άλλη μεταβλητή με όνομα blue_minute και αποθηκεύστε το λεπτό χρησιμοποιώντας τη συνάρτηση strftime() από τη μεταβλητή blue_date. Δημιουργήστε μια άλλη μεταβλητή με όνομα blue_meridian και αποθηκεύστε το meridian, AM/PM χρησιμοποιώντας τη συνάρτηση strftime() από τη μεταβλητή blue_date. Εισάγετε τις μεταβλητές blue_hour, blue_minute και blue_meridian στη προ-γραμμένη συνάρτηση write().
  • Στο σκούρο σημάδι X, στραφτείτε προς τα κουτιά και δημιουργήστε μια μεταβλητή με όνομα blue_local_date στην οποία θα αποθηκεύσετε το τοπικό φορμάτ ημερομηνίας, χρησιμοποιώντας τη συνάρτηση strftime() από τη μεταβλητή blue_date. Δημιουργήστε μια άλλη μεταβλητή με όνομα blue_local_time και αποθηκεύστε το τοπικό φορμάτ ώρας χρησιμοποιώντας τη συνάρτηση strftime() από τη μεταβλητή blue_date. Εισάγετε τις μεταβλητές blue_local_date, blue_local_time και blue_meridian στη προ-γραμμένη συνάρτηση display().

Τέλος, θα προχωρήσουμε στο χρυσό σημάδι X δίπλα στο πράσινο χαλί και θα προχωρήσουμε προς τα κάτω στα σημάδια X δίπλα στα κουτιά του πράσινου χαλιού στη δεξιά στήλη. Εδώ θα συνεχίσουμε να προσθέτουμε συγκεκριμένα μέρη των ημερομηνιών συσκευασίας που λείπουν από τα κουτιά χρησιμοποιώντας τη συνάρτηση strftime(). Στον επεξεργαστή θα υπάρχει μια προ-γραμμένη ημερομηνία που έχει εκχωρηθεί στη μεταβλητή green_date, από την οποία θα εξάγουμε διάφορα δεδομένα και θα τα χρησιμοποιήσουμε για την επιγραφή των κουτιών.

Για τα πράσινα χαλιά:

  • Στο χρυσό σημάδι X, στραφτείτε προς τα κουτιά και δημιουργήστε μια μεταβλητή με όνομα green_day στην οποία θα αποθηκεύσετε την ημέρα του έτους χρησιμοποιώντας τη συνάρτηση strftime() από τη μεταβλητή green_date. Χρησιμοποιήστε τη συνάρτηση write() για να επισημάνετε τα κουτιά χρησιμοποιώντας green_day.
  • Στο ελαφρύ σημάδι X, στραφτείτε προς τα κουτιά και δημιουργήστε μια μεταβλητή με όνομα green_week στην οποία θα αποθηκεύσετε την εβδομάδα του έτους χρησιμοποιώντας τη συνάρτηση strftime() από τη μεταβλητή green_date. Χρησιμοποιήστε τη συνάρτηση write() για να επισημάνετε τα κουτιά χρησιμοποιώντας green_week.
  • Στο σκούρο σημάδι X, στραφτείτε προς τα κουτιά και δημιουργήστε μια μεταβλητή με όνομα green_timezone στην οποία θα αποθηκεύσετε τη ζώνη ώρας UTC χρησιμοποιώντας τη συνάρτηση strftime() από τη μεταβλητή green_date. Χρησιμοποιήστε τη συνάρτηση write() για να επισημάνετε τα κουτιά χρησιμοποιώντας green_timezone.

Μόλις όλες οι ετικέτες στα σημάδια X δίπλα στα έγχρωμα χαλιά έχουν καταγραφεί, το επίπεδο θα ολοκληρωθεί.

Βιβλίο Κώδικα