Coding for KidsCoding for Kids
ระดับสร้างสรรค์ความท้าทายคู่มือครู
โหวตสำหรับฟีเจอร์
หลักสูตรการพัฒนาด้วย Python ขั้นสูง
บทที่
>
ระดับ

โมดูลสตริงและเวลา
โมดูลวันที่/เวลา

วัตถุประสงค์

ปรับบันทึกและตั้งค่าวันเวลาสำหรับการจัดส่งวัสดุโดยใช้ฟังก์ชันของโมดูล Date & Time

ชั้นล่างของส่วนเพิ่มเติมในพื้นที่การก่อสร้างใหม่เป็นคลังสินค้าที่เก็บวัสดุที่เพิ่งได้รับการจัดส่งมา ซึ่งได้ถูกบรรจุและเตรียมพร้อมสำหรับการจัดส่งไปยังพื้นที่ต่าง ๆ รอบ ๆ การก่อสร้างใหม่ เหล่านี้จำเป็นต้องมีการติดป้ายที่แสดงวันและเวลาที่ถูกต้อง รวมถึงตรวจสอบให้แน่ใจว่าป้ายที่ติดไปแล้วมีข้อมูลที่เกี่ยวข้องครบถ้วน ในการทำเช่นนี้เราอาจใช้เวลามาเขียนและจัดรูปแบบวันและเวลาแบบแมนนวล แต่มีวิธีที่รวดเร็วกว่ามากโดยใช้โมดูลวันที่และเวลา

โมดูลวันที่และเวลาจะถูกนำเข้าโดยการเขียน import datetime ซึ่งจะเปิดใช้งานฟังก์ชันที่ทรงพลังหลายฟังก์ชันที่ช่วยให้คุณอ่านและตั้งค่าวันและเวลาที่จัดรูปแบบแล้วและสามารถเก็บลงในอ็อบเจ็กต์ นอกจากนี้คุณยังสามารถใช้: from datetime import timezone, timedelta เพื่อกำหนดเขตเวลาของคุณ ฟังก์ชันต่อไปนี้จะถูกปลดล็อกเมื่อคุณนำเข้าโมดูล:

  • datetime.datetime(): อนุญาตให้คุณตั้งค่าและเก็บเวลาที่คุณเลือก โดยรับอาร์กิวเมนต์หลายตัวดังนี้: year, month, day, hour, minute, second, microsecond, timezone คุณไม่จำเป็นต้องใส่ทุกอาร์กิวเมนต์ แต่ใส่เฉพาะที่คุณต้องการใช้
  • datetime.datetime.now(): คืนค่าวันและเวลาปัจจุบันของคุณตามที่นาฬิกาจะแสดง
  • datetime.datetime.date(): คืนค่าเฉพาะวันที่จาก datetime โดยไม่มีเวลารวมอยู่
  • datetime.datetime.time(): คืนค่าเฉพาะเวลาจาก datetime โดยไม่มีวันที่รวมอยู่
  • datetime.datetime.timestamp(): คืนค่า timestamp ของ datetime ในรูปแบบโค้ด UNIX
  • timezone(): อนุญาตให้คุณตั้งค่าเขตเวลาสำหรับใช้กับอาร์กิวเมนต์วันและเวลาของคุณ
  • datetime.strftime(): อนุญาตให้คุณดึงข้อมูลเฉพาะของวันและเวลาและจัดรูปแบบตามที่คุณต้องการโดยใช้โค้ดเฉพาะ สำหรับวัตถุประสงค์ของเราจะใช้โค้ดดังต่อไปนี้:
    • "%a" : วันในสัปดาห์แบบย่อ
    • "%d" : วันของเดือน
    • "%B" : ชื่อเดือนที่เขียนเต็ม
    • "%I" : ชั่วโมง, วงจร 12 ชั่วโมง
    • "%M" : นาที
    • "%p" : Meridian, AM/PM
    • "%x" : รูปแบบวันที่ท้องถิ่น
    • "%X" : รูปแบบเวลาท้องถิ่น
    • "%j" : วันในปี
    • "%U" : สัปดาห์ของปี
    • "%z" : เขตเวลา UTC

เริ่มต้นด้วยการเดินไปที่เครื่องหมาย X สีอ่อนและหันหน้าไปที่โต๊ะ ใช้ฟังก์ชัน read() เพื่อตรวจสอบวันที่บรรจุสำหรับการจัดส่งรวมถึงวันเริ่มต้นและวันสิ้นสุดสำหรับโครงการต่าง ๆ จดบันทึกวันเริ่มต้นและวันสิ้นสุดที่มีในเอกสาร (เดือน/วัน/ปี) สามข้อมูลแรกที่เขียนไว้ในบันทึกรวมถึงเขตเวลาถูกเขียนไว้ล่วงหน้าในโปรแกรมแก้ไขโค้ดเพื่อความสะดวกในการใช้งานในฟังก์ชันในภายหลัง

ในพื้นที่เดียวกันนี้ สร้างตัวแปรชื่อ today และเก็บค่าที่ส่งกลับจาก datetime.datetime.now() ใช้ str() เพื่อแปลงค่าให้เป็นสตริงเพื่อให้อ่านได้ง่าย ดังนี้: today = str(datetime.datetime.now()) ใช้ฟังก์ชัน display() เพื่อบันทึกวันที่ของวันนี้ลงในบันทึก ด้วยวิธีนี้วันที่สำหรับการจัดสรรการจัดส่งจะถูกตั้งค่าและคุณสามารถเริ่มเพิ่มข้อมูลที่ขาดหายไปในพื้นที่ที่จำเป็นได้

เดินไปที่เครื่องหมาย X สีทองข้างๆ โต๊ะ ซึ่งที่นี่เราจะคำนวณและบันทึกจำนวนวันที่โครงการนี้จะใช้ มีตัวแปรสองตัวที่เขียนไว้ในโปรแกรมแก้ไขชื่อ start และ end ที่เก็บวันที่และเวลา จดบันทึกวันเริ่มต้นและวันสิ้นสุดที่คุณอ่านไว้ในพื้นที่ที่จัดเตรียมไว้ สร้างตัวแปรชื่อ 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 ในหน้ากล่องพรมสีน้ำเงิน เช่นเดิมมีเครื่องหมาย X สีที่เรียงตามลำดับสาม (3) จุด ในกรณีนี้อ้างอิงตัวแปร 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 ข้างๆ พรมสีต่าง ๆ ได้ถูกบันทึกแล้ว ระดับนี้ก็จะเสร็จสมบูรณ์

หนังสือโค้ด