การคำนวณวันที่ในอนาคตหรืออดีต

Python:
การคำนวณวันที่ในอนาคตหรืออดีต

วิธีการ:

โมดูล datetime ของ Python ทำให้การทำงานกับวันที่และเวลาเป็นเรื่องง่าย ลองดูนี่:

from datetime import datetime, timedelta

# วันที่และเวลาปัจจุบัน
now = datetime.now()
print("ตอนนี้: ", now)

# เพิ่ม 10 วัน
future_date = now + timedelta(days=10)
print("วันที่ในอนาคต (+10 วัน): ", future_date)

# ลบ 5 วัน
past_date = now - timedelta(days=5)
print("วันที่ในอดีต (-5 วัน): ", past_date)

ผลที่อาจเป็นได้คือ:

ตอนนี้: 2023-04-01 12:34:56.789012
วันที่ในอนาคต (+10 วัน): 2023-04-11 12:34:56.789012
วันที่ในอดีต (-5 วัน): 2023-03-27 12:34:56.789012

ง่ายใช่ไหม? เพียงแค่ปรับจำนวนวัน, หรือใช้ weeks, hours, minutes, หรือ seconds ใน timedelta เพื่อกระโดดไปยังเวลาที่คุณต้องการ

การศึกษาลึก

ก่อนหน้านี้, การคำนวณวันที่และเวลาเป็นเรื่องยาก คุณจะต้องจัดการกับปีอธิกสุรทิน, โซนเวลา, การปรับเวลาฤดูร้อน - รกสุดๆ ด้วยโมดูล datetime และเพื่อนๆ อย่าง date และ time ของ Python, มันเป็นเรื่องง่ายมาก โมดูลจัดการความซับซ้อนในเบื้องหลัง

คุณอาจถามเกี่ยวกับทางเลือกอื่น แน่นอน ไลบรารีเช่น dateutil สามารถจัดการกับการคำนวณวันที่ที่ซับซ้อนและการแยกวันที่ออกจากกัน มันเป็นตัวเลือกเมื่อ datetime อาจไม่ตอบโจทย์

ในเรื่องการใช้, เมื่อคุณใช้ timedelta, Python ปรับวันที่โดยคำนึงถึงปีอธิกสุรทินและอื่นๆ อย่างไรก็ตาม คุณควรตรวจสอบผลลัพธ์ของคุณ - โดยเฉพาะเมื่อต้องจัดการกับโซนเวลา และจำไว้ว่า, datetime เป็นแบบ naive โดยค่าเริ่มต้น; มันไม่คำนึงถึงโซนเวลาเว้นแต่คุณจะบอกมัน

ดูเพิ่มเติม