Coding for KidsCoding for Kids
Cấp Độ Sáng TạoThử TháchHướng Dẫn Giáo Viên
Bình chọn tính năng
Khóa học Phát triển Python Nâng cao
Chương
>
Cấp độ

Modules Chuỗi và Thời gian
Mô-đun Ngày/Giờ

Mục tiêu

Điều chỉnh hồ sơ và thiết lập ngày giao hàng cho các vật tư bằng cách sử dụng các hàm của module Ngày & Giờ.

Tầng dưới của khu phụ của khu vực xây dựng mới là một nhà kho chứa một số vật tư được giao gần đây, đã được đóng gói và sẵn sàng vận chuyển đến các khu vực xung quanh khu xây dựng mới. Chúng cần được dán nhãn với ngày và giờ chính xác, và đảm bảo rằng bất kỳ nhãn nào đã được dán lên đều có đầy đủ thông tin liên quan. Để làm điều này, chúng ta có thể dành thời gian ghi và định dạng ngày giờ bằng tay, nhưng có một cách nhanh hơn nhiều để làm điều này bằng cách sử dụng module ngày và giờ.

Module ngày và giờ được nhập vào bằng cách viết import datetime, điều này mở khóa một loạt các hàm mạnh mẽ cho phép bạn đọc và thiết lập thời gian và ngày được định dạng mà bạn có thể lưu trữ trong các đối tượng. Bạn cũng có thể sử dụng: from datetime import timezone, timedelta để thiết lập múi giờ. Các hàm sau được mở khóa khi nhập module:

  • datetime.datetime(): Cho phép bạn thiết lập và lưu trữ một thời gian mà bạn chọn, nhận một số đối số như sau: year, month, day, hour, minute, second, microsecond, timezone. Bạn không cần phải nhập tất cả các đối số, chỉ cần là những đối số bạn muốn sử dụng.
  • datetime.datetime.now(): Trả về ngày và giờ hiện tại của bạn như nó xuất hiện trên đồng hồ.
  • datetime.datetime.date(): Trả về chỉ ngày từ datetime, không bao gồm thời gian
  • datetime.datetime.time(): Trả về chỉ thời gian từ datetime, không bao gồm ngày
  • datetime.datetime.timestamp(): Trả về dấu thời gian của datetime dưới dạng mã UNIX.
  • timezone(): Cho phép bạn thiết lập một múi giờ để sử dụng với các đối số ngày và giờ của bạn.
  • datetime.strftime(): Cho phép bạn trích xuất thông tin cụ thể của ngày và giờ và định dạng nó theo ý muốn của bạn bằng các mã cụ thể. Trong mục đích của chúng ta, chúng ta sẽ sử dụng các mã sau:
    • "%a": Ngày trong tuần, viết tắt
    • "%d": Ngày của tháng
    • "%B": Tên tháng, viết đầy đủ
    • "%I": Giờ, theo chu kỳ 12 giờ
    • "%M": Phút
    • "%p": Sáng/chiều, AM/PM
    • "%x": Định dạng ngày địa phương
    • "%X": Định dạng giờ địa phương
    • "%j": Ngày thứ bao nhiêu của năm
    • "%U": Tuần thứ bao nhiêu của năm
    • "%z": Múi giờ UTC

Để bắt đầu, hãy đi đến dấu X sáng và hướng về phía bàn làm việc, sử dụng hàm read() để kiểm tra ngày đóng gói của các lô hàng cũng như ngày bắt đầu và kết thúc của các dự án. Ghi chú lại các ngày bắt đầu và kết thúc được cung cấp trong tài liệu (tháng/ngày/năm). Ba (3) điểm dữ liệu đầu tiên được viết trong bảng ghi nhớ cũng như múi giờ đã được viết sẵn trong trình soạn thảo mã để tiện sử dụng trong các hàm sau này.

Trong không gian này, tạo một biến có tên today và lưu trữ giá trị trả về của datetime.datetime.now(). Sử dụng str() để chuyển đổi giá trị thành chuỗi để nó có định dạng dễ đọc, như sau: today = str(datetime.datetime.now()). Sử dụng hàm display() để ghi lại ngày hôm nay trên bảng ghi nhớ, với điều này ngày cho các phân bổ giao hàng được thiết lập và bạn có thể bắt đầu thêm các điểm dữ liệu bị thiếu vào các khu vực cần thiết.

Hãy đi đến dấu X vàng cạnh bàn làm việc và ở đây chúng ta sẽ tính toán và ghi lại số ngày mà dự án này sẽ mất. Có hai biến được viết trong trình soạn thảo có tên startend lưu trữ datetime. Ghi lại các ngày bắt đầu và kết thúc mà bạn đã đọc trước đó vào các khoảng trống được cung cấp. Tạo một biến có tên result và lưu trữ kết quả của phép trừ giữa biến endstart. Sử dụng hàm str() để chuyển đổi giá trị thành định dạng chuỗi dễ đọc, như sau: result = str(end-start). Sử dụng hàm write() để ghi lại biến result, nhằm đánh dấu thời gian hoàn thành dự án này.

Từ đây, chúng ta sẽ chuyển sang dấu X vàng cạnh thảm đỏ và sẽ di chuyển xuống các dấu X cạnh những thùng thảm đỏ ở cột bên trái. Ở đây, chúng ta sẽ thêm các phần cụ thể của ngày đóng gói bị thiếu trên các thùng bằng cách sử dụng datetime(). Trong trình soạn thảo sẽ có một ngày được viết sẵn gán cho biến red_date, chúng ta sẽ trích xuất các phần dữ liệu khác nhau và sử dụng chúng để dán nhãn cho các thùng.

Đối với thảm đỏ:

  • Ở dấu X vàng, đối mặt với các thùng và tạo một biến có tên red_days, lưu trữ trong đó ngày không có thời gian bằng cách sử dụng date() từ biến red_date và chuyển đổi nó bằng str(), như sau: red_days = str(red_date.date()). Sử dụng hàm write() để dán nhãn cho các thùng sử dụng red_days.

  • Ở dấu X sáng, đối mặt với các thùng và tạo một biến có tên red_time, lưu trữ trong đó thời gian không có ngày bằng cách sử dụng time() từ biến red_date và chuyển đổi nó bằng str(), như sau: red_time = str(red_date.time()). Sử dụng hàm write() để dán nhãn cho các thùng sử dụng red_time.

  • Ở dấu X tối, đối mặt với các thùng và tạo một biến có tên red_timestamp, lưu trữ trong đó dấu thời gian được tính từ biến red_date, như sau: red_timestamp = red_date.timestamp(). Sử dụng hàm write() để dán nhãn cho các thùng sử dụng red_timestamp.

Tiếp theo, chúng ta sẽ chuyển sang các dấu X phía trước các thùng thảm xanh. Giống như trước, có một loạt ba (3) dấu X màu, trong trường hợp này tham chiếu đến biến blue_date đã được viết sẵn để hoàn thành các nhãn. Hãy đi qua cột và sử dụng hàm strftime() để thêm các yếu tố bị thiếu vào nhãn giao hàng. Khác với các hàm trước, hàm này yêu cầu một mã cụ thể để trích xuất và định dạng các yếu tố trong ngày mục tiêu. Ví dụ, nếu chúng ta muốn lấy ngày trong tuần cho biến blue_date bạn sẽ sử dụng mã "%a" với hàm strftime() như sau: blue_date.strftime("%a").

Đối với các dấu X cạnh các thùng thảm xanh, sử dụng hàm strftime() với mã cụ thể yêu cầu. Xem qua danh sách mã đã được liệt kê tùy theo yêu cầu. Đối với thảm xanh:

  • Ở dấu X vàng, đối mặt với các thùng và tạo một biến có tên blue_weekday, lưu trữ trong đó ngày trong tuần sử dụng strftime() từ biến blue_date như sau: blue_day = blue_date.strftime("%a"). Tạo một biến khác có tên blue_day và lưu trữ ngày của tháng sử dụng strftime() từ biến blue_date. Tạo một biến khác có tên blue_month và lưu trữ tên tháng, viết đầy đủ, sử dụng strftime() từ biến blue_date. Chèn các biến blue_weekday, blue_dayblue_month vào hàm write() đã được viết sẵn.

  • Ở dấu X sáng, đối mặt với các thùng và tạo một biến có tên blue_hour, lưu trữ trong đó giờ, theo chu kỳ 12 giờ, sử dụng strftime() từ biến blue_date. Tạo một biến khác có tên blue_minute và lưu trữ phút sử dụng strftime() từ biến blue_date. Tạo một biến khác có tên blue_meridian và lưu trữ Sáng/Chiều, AM/PM, sử dụng strftime() từ biến blue_date. Chèn các biến blue_hour, blue_minuteblue_meridian vào hàm write() đã được viết sẵn.

  • Ở dấu X tối, đối mặt với các thùng và tạo một biến có tên blue_local_date, lưu trữ trong đó định dạng ngày địa phương, sử dụng strftime() từ biến blue_date. Tạo một biến khác có tên blue_local_time và lưu trữ định dạng giờ địa phương sử dụng strftime() từ biến blue_date. Chèn các biến blue_local_date, blue_local_timeblue_meridian vào hàm display() đã được viết sẵn.

Cuối cùng, chúng ta sẽ chuyển sang dấu X vàng cạnh thảm xanh lá và sẽ di chuyển xuống các dấu X cạnh các thùng thảm xanh lá ở cột bên phải. Ở đây, chúng ta sẽ tiếp tục thêm các phần cụ thể của ngày đóng gói bị thiếu trên các thùng bằng cách sử dụng strftime(). Trong trình soạn thảo sẽ có một ngày được viết sẵn gán cho biến green_date, chúng ta sẽ trích xuất các phần dữ liệu khác nhau và sử dụng chúng để dán nhãn cho các thùng.

Đối với thảm xanh lá:

  • Ở dấu X vàng, đối mặt với các thùng và tạo một biến có tên green_day, lưu trữ trong đó ngày thứ bao nhiêu của năm sử dụng strftime() từ biến green_date. Sử dụng hàm write() để dán nhãn cho các thùng sử dụng green_day.

  • Ở dấu X sáng, đối mặt với các thùng và tạo một biến có tên green_week, lưu trữ trong đó tuần thứ bao nhiêu của năm sử dụng strftime() từ biến green_date. Sử dụng hàm write() để dán nhãn cho các thùng sử dụng green_week.

  • Ở dấu X tối, đối mặt với các thùng và tạo một biến có tên green_timezone, lưu trữ trong đó múi giờ UTC sử dụng strftime() từ biến green_date. Sử dụng hàm write() để dán nhãn cho các thùng sử dụng green_timezone.

Khi tất cả các nhãn trên các dấu X cạnh các thảm có màu đã được ghi chép đầy đủ, cấp độ này sẽ hoàn tất.

Sách Mã