การคำนวณวันที่และเวลาใน Python ทำได้ง่ายด้วยอ็อบเจกต์ timedelta เมื่อต้องการบวกหรือลบวันที่/เวลา ให้ใช้ datetime.datetime() แล้วบวกหรือลบด้วย datetime.timedelta()
datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
หมายเหตุ: อาร์กิวเมนต์ทั้งหมดเป็นตัวเลือก ค่าเริ่มต้น 0 รองรับ int, float, ค่าบวกหรือลบ
ตัวอย่าง: บวกลบเวลา
import datetime
old_time = datetime.datetime.now()
print(old_time)
new_time = old_time - datetime.timedelta(hours=2, minutes=10)
print(new_time)
ผลลัพธ์
2018-01-04 11:09:00.694602
2018-01-04 08:59:00.694602
timedelta() ไม่รองรับ datetime.time() ต้องใช้ datetime.datetime.combine() รวมเป็น datetime ก่อน คำนวณเสร็จแล้วค่อย .time()
ตัวอย่าง: ลบ datetime สองตัว
การลบ datetime สองอ็อบเจกต์จะได้ timedelta ซึ่งใช้หาความต่างที่แน่นอน
t1 = datetime.datetime.now()
t2 = datetime.datetime.now()
print(t1 - t2)
print(type(t1 - t2))
ผลลัพธ์
-1 day, 23:59:56.653627
<class 'datetime.timedelta'>