ภาพรวม
ใช้โมดูล datetime คำนวณความต่างระหว่างสองวันที่ ได้ผลลัพธ์เป็นจำนวนวัน
ตัวอย่างโค้ด
from datetime import date
date1 = date(2021, 7, 20)
date2 = date(2021, 8, 30)
print("Date 1 =", date1)
print("Date 2 =", date2)
diff_days = (date2 - date1).days
print("Days between two dates =", diff_days)
ผลลัพธ์
Date 1 = 2021-07-20
Date 2 = 2021-08-30
Days between two dates = 41
คำอธิบาย
dateobject แทนวันที่ (ปี, เดือน, วัน) ไม่มีเวลา- การลบ
date2 - date1คืนtimedeltaobject .daysattribute ให้จำนวนวันเต็ม- รองรับ negative result หาก date1 > date2
ขยายความสามารถ
from datetime import datetime, timedelta
# รวมเวลา
dt1 = datetime(2021, 7, 20, 10, 30)
dt2 = datetime(2021, 8, 30, 15, 45)
diff = dt2 - dt1
print(diff.days) # 41 days
print(diff.seconds) # seconds within the day
print(diff.total_seconds()) # total seconds
# เพิ่ม/ลบวัน
future = date1 + timedelta(days=30)
past = date1 - timedelta(weeks=2)
# Business days (ต้องใช้ numpy.busday_count หรือ custom logic)
import numpy as np
np.busday_count(date1, date2)
Pandas Version
import pandas as pd
d1 = pd.Timestamp('2021-07-20')
d2 = pd.Timestamp('2021-08-30')
print((d2 - d1).days) # 41