Mô-đun dateutil trong Python cung cấp một lớp
Years, Months, Days between two dates is 2 Years, 7 months, 2 days1, biểu thị một khoảng thời gian. Ví dụ: chúng ta có thể tìm thấy sự khác biệt giữa hai ngày trong năm, tháng, ngày, giờ, phút, giây và micro giây bằng cách sử dụng lớp
Years, Months, Days between two dates is 2 Years, 7 months, 2 days1. Các bước dưới đây chỉ ra cách xác định số năm và số tháng giữa hai đối tượng ngày tháng hoặc ngày giờ
- Nhập mô-đun dateutil
dateutil là mô-đun của bên thứ ba cung cấp các tiện ích mở rộng mạnh mẽ cho mô-đun datetime tiêu chuẩn, có sẵn trong Python
- Chuyển đổi chuỗi ngày thành đối tượng datetime
Nếu ngày ở định dạng chuỗi, chúng ta cần chuyển đổi chuỗi thành đối tượng ngày giờ trước khi tính chênh lệch theo tháng. Sử dụng hàm
Years, Months, Days between two dates is 2 Years, 7 months, 2 days
3 để chuyển đổi chuỗi ngày thành đối tượng ngày giờ theoYears, Months, Days between two dates is 2 Years, 7 months, 2 days
4 tương ứng. Ví dụ: chuỗi có thể ở định dạngYears, Months, Days between two dates is 2 Years, 7 months, 2 days
5 - Tạo một đối tượng tương đốidelta
Tạo một đối tượng relativedelta đại diện cho khoảng thời gian giữa hai ngày đã cho. Sử dụng hàm
Years, Months, Days between two dates is 2 Years, 7 months, 2 days
6 của mô-đun dateutil để tạo đối tượng relativedelta - Nhận năm, tháng và ngày giữa hai ngày
Sử dụng thuộc tính
Years, Months, Days between two dates is 2 Years, 7 months, 2 days
7 để lấy số năm.
Tiếp theo, sử dụngYears, Months, Days between two dates is 2 Years, 7 months, 2 days
8 để nhận tháng.
Cuối cùng, sử dụngYears, Months, Days between two dates is 2 Years, 7 months, 2 days
9 để tính ngày. - Chỉ nhận được tháng giữa hai ngày
Sử dụng công thức
0 để lấy tổng số tháng giữa hai ngàyfrom datetime import datetime from dateutil import relativedelta # get two dates d1 = '14/8/2019' d2 = '16/3/2022' # convert string to date object start_date = datetime.strptime[d1, "%d/%m/%Y"] end_date = datetime.strptime[d2, "%d/%m/%Y"] # Get the relativedelta between two dates delta = relativedelta.relativedelta[end_date, start_date] # get months difference res_months = delta.months + [delta.years * 12] print['Total Months between two dates is:', res_months]
Thí dụ. Nhận năm, tháng và ngày giữa hai ngày
Giả sử chúng ta có hai ngày, '14/8/2019′ và '16/3/2022′. Sau khi thực hiện ví dụ dưới đây, chúng ta sẽ nhận được sự khác biệt của 2 năm, 7 tháng và 2 ngày giữa hai ngày
Years, Months, Days between two dates is 2 Years, 7 months, 2 days0
đầu ra
Years, Months, Days between two dates is 2 Years, 7 months, 2 days
Thí dụ. Chỉ nhận tháng giữa hai ngày
Ghi chú.
Years, Months, Days between two dates is 2 Years, 7 months, 2 days8 trả về sự khác biệt tương đối, tôi. e. , từ 0 đến 12. Vì vậy, để có được một số tuyệt đối, chúng ta cần tính số năm giữa hai ngày, nhân chúng với 12 và cộng chúng vào
Years, Months, Days between two dates is 2 Years, 7 months, 2 days8
from datetime import datetime
from dateutil import relativedelta
# get two dates
d1 = '14/8/2019'
d2 = '16/3/2022'
# convert string to date object
start_date = datetime.strptime[d1, "%d/%m/%Y"]
end_date = datetime.strptime[d2, "%d/%m/%Y"]
# Get the relativedelta between two dates
delta = relativedelta.relativedelta[end_date, start_date]
# get months difference
res_months = delta.months + [delta.years * 12]
print['Total Months between two dates is:', res_months]
đầu ra
Years, Months, Days between two dates is 2 Years, 7 months, 2 days5
Ngoài ra, hãy xem Tính số ngày giữa hai ngày trong Python
Sự khác biệt giữa hai ngày trong tháng bằng cách sử dụng mô-đun datetime
Thay vì sử dụng mô-đun dateutil, chúng ta có thể sử dụng mô-đun datetime tích hợp để lấy các tháng theo lịch giữa hai ngày
Sử dụng công thức dưới đây để tính toán
Years, Months, Days between two dates is 2 Years, 7 months, 2 days6
Thí dụ
Years, Months, Days between two dates is 2 Years, 7 months, 2 days7
đầu ra
Years, Months, Days between two dates is 2 Years, 7 months, 2 days8
Ghi chú
Sử dụng mô-đun datetime khi bạn cần sự khác biệt trong tháng dương lịch. Không sử dụng mô-đun ngày giờ để tính số tháng chính xác giữa hai ngày
Ví dụ: chênh lệch giữa ‘30/1/2022′ và ‘2/1/2022’ là 2 ngày, nhưng ví dụ trên hiển thị 1 tháng. Vì vậy, hãy luôn sử dụng mô-đun dateutil để có kết quả chính xác
ví dụ 1. mô-đun ngày giờ
Years, Months, Days between two dates is 2 Years, 7 months, 2 days9
ví dụ 2. mô-đun dateutil
Years, Months, Days between two dates is 2 Years, 7 months, 2 days0
Tính tháng giữa hai đối tượng datetime
Có những trường hợp bạn nhận được ngày trong đối tượng datetime thay vì chuỗi. Trong những trường hợp như vậy, bạn không cần phải chuyển đổi chúng. Bạn có thể trực tiếp tính toán sự khác biệt giữa chúng