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 โดยค่าเริ่มต้น; มันไม่คำนึงถึงโซนเวลาเว้นแต่คุณจะบอกมัน
ดูเพิ่มเติม
- เอกสารแนะนำ
datetime
ของ Python: https://docs.python.org/3/library/datetime.html - ไลบรารี
dateutil
: https://dateutil.readthedocs.io/en/stable/ - การจัดการกับโซนเวลาใน Python: https://docs.python.org/3/library/zoneinfo.html