Sau khi đọc bài viết này, bạn sẽ học cách tìm sự khác biệt giữa hai ngày trong Python. Ngoài ra, chúng tôi sẽ thấy cách tính số ngày giữa hai ngày và đối tượng DateTime.
Cách & nbsp; tính toán chênh lệch giữa hai ngày tính theo ngày
Ngày có thể ở bất kỳ hình thức nào, chẳng hạn như chuỗi, đối tượng ngày hoặc đối tượng DateTime. Chúng tôi sẽ thấy ví dụ của tất cả các trường hợp.
Python cung cấp mô -đun DateTime để tạo và thao tác ngày và giờ. Các bước dưới đây cho thấy cách sử dụng mô -đun DateTime để tính toán chênh lệch giữa hai ngày tính theo ngày.
- Nhập mô -đun DateTime
Mô -đun DateTime Python cung cấp các chức năng khác nhau để tạo và thao tác ngày và thời gian. Sử dụng câu lệnh from datetime import datetime
để nhập lớp datetime
từ mô -đun DateTime.
- Chuyển đổi chuỗi ngày thành đối tượng DateTime
Có thể có một trường hợp trong đó ngày ở định dạng chuỗi. Trước khi tính toán sự khác biệt trong ngày, chúng ta cần chuyển đổi cả hai chuỗi ngày thành đối tượng DateTime. Sử dụng hàm
Difference is 123 days
0 để chuyển đổi chuỗi ngày thành đối tượng DateTime theo ____ 11. Mã định dạng tương ứng là các chỉ thị tiêu chuẩn để đề cập đến định dạng của chuỗi để phân tích cú pháp. Ví dụ: mã định dạng Difference is 123 days
2 dành cho Difference is 123 days
3
Use the Difference is 123 days
0 function to convert a date string into a datetime object as per the corresponding Difference is 123 days
1.
The format
codes are standard directives for mentioning the format of the string for parsing. For example, the Difference is 123 days
2 format codes are for Difference is 123 days
3 - Trừ ngày 2 từ ngày 1
Để có được sự khác biệt giữa hai ngày, trừ ngày 2 từ ngày 1. Một kết quả là một đối tượng Timedelta. TimEdelTA biểu thị thời lượng là sự khác biệt giữa hai ngày, thời gian hoặc các trường hợp DateTime, so với độ phân giải micro giây.
- Nhận sự khác biệt trong ngày
Để có được số ngày giữa hai ngày, hãy sử dụng thuộc tính
Difference is 123 days
4 - Nhận sự khác biệt trong vài giây
Để có được kết quả trong vài giây, hãy sử dụng thuộc tính
Difference is 123 days
5
Ví dụ: Ngày giữa hai ngày
from datetime import datetime
# dates in string format
str_d1 = '2021/10/20'
str_d2 = '2022/2/20'
# convert string to date object
d1 = datetime.strptime(str_d1, "%Y/%m/%d")
d2 = datetime.strptime(str_d2, "%Y/%m/%d")
# difference between dates in timedelta
delta = d2 - d1
print(f'Difference is {delta.days} days')
Output::
Difference is 123 days
Mã ngắn::
from datetime import datetime as dt
res = (dt.strptime('2022/2/20', "%Y/%m/%d") - dt.strptime('2021/10/20', "%Y/%m/%d")).days
Cũng thấy:
- Sự khác biệt giữa hai ngày trong tháng.
- Sự khác biệt về thời gian giữa hai lần trong Python.
- Tính toán ngày làm việc giữa hai ngày trong Python.
Sự khác biệt giữa hai đối tượng Difference is 123 days6
Có những trường hợp bạn nhận được ngày trong một đối tượng
Difference is 123 days
6 thay vì một chuỗi. Trong những trường hợp như vậy, bạn có thể trực tiếp tính toán sự khác biệt giữa chúng bằng cách thực hiện thao tác trừ.Example::
from datetime import date
def get_difference(date1, date2):
delta = date2 - date1
return delta.days
d1 = date(2021, 10, 20)
d2 = date(2022, 2, 20)
days = get_difference(d1, d2)
print(f'Difference is {days} days')
Output::
Difference is 123 days
Sự khác biệt giữa hai đối tượng datetime
Chúng ta cần làm việc với một đối tượng DateTime thay vì
Difference is 123 days
6 trong một số trường hợp. Đối tượng DateTime chứa cả thông tin ngày (ngày tháng) và thời gian (giờ từng giờ). Hãy cùng xem cách tính toán số ngày giữa hai đối tượng DateTime.- Đầu tiên, hãy chuyển đổi chuỗi DateTime thành đối tượng
datetime
bằng & nbsp; ________ 21 & nbsp; - Tiếp theo, tính toán sự khác biệt bằng cách trừ
from datetime import datetime as dt
res = (dt.strptime('2022/2/20', "%Y/%m/%d") - dt.strptime('2021/10/20', "%Y/%m/%d")).days
2 từ from datetime import datetime as dt
res = (dt.strptime('2022/2/20', "%Y/%m/%d") - dt.strptime('2021/10/20', "%Y/%m/%d")).days
3.
Thí dụ::
from datetime import datetime
# datetime in string format
str_dt1 = '2021/10/20 09:15:32.36980'
str_dt2 = '2022/2/20 04:25:42.120450'
# convert string to datetime
dt1 = datetime.strptime(str_dt1, "%Y/%m/%d %H:%M:%S.%f")
dt2 = datetime.strptime(str_dt2, "%Y/%m/%d %H:%M:%S.%f")
# difference between datetime in timedelta
delta = dt2 - dt1
print(f'Difference is {delta.days} days')
Output::
Difference is 122 days
Note::
Đối tượng Python Timedelta coi 24 giờ là một ngày và trong các ngày theo lịch, bạn sẽ cần phải tròn xuống ngày gần nhất bằng cách loại bỏ một phần ngày ở cả hai bên. Tức là, chúng ta cần thiết lập giờ, phút và giây thành 0 trong cả hai datetime.
Example::
from datetime import datetime
# datetime in string format
str_dt1 = '2021/10/20 09:15:32.36980'
str_dt2 = '2022/2/20 04:25:42.120450'
# convert string to datetime
dt1 = datetime.strptime(str_dt1, "%Y/%m/%d %H:%M:%S.%f")
dt2 = datetime.strptime(str_dt2, "%Y/%m/%d %H:%M:%S.%f")
rounded_dt1 = dt1.replace(hour=0, minute=0, second=0, microsecond=0)
rounded_dt2 = dt2.replace(hour=0, minute=0, second=0, microsecond=0)
delta = (rounded_dt2 - rounded_dt1)
print(delta.days)
Các bài tập mã hóa miễn phí và các câu đố bao gồm các vấn đề cơ bản của Python, cấu trúc dữ liệu, phân tích dữ liệu, v.v.