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