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 days0 để 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 days2 dành cho Difference is 123 days3
Use the Difference is 123 days0 function to convert a date string into a datetime object as per the corresponding Difference is 123 days1.
The format codes are standard directives for mentioning the format of the string for parsing. For example, the Difference is 123 days2 format codes are for Difference is 123 days3 - 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 days4
- 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 days5
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 daysMã 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")).daysCũ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 days6 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 daysSự 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 days6 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")).days2 từ from datetime import datetime as dt res = (dt.strptime('2022/2/20', "%Y/%m/%d") - dt.strptime('2021/10/20', "%Y/%m/%d")).days3.
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 daysNote::
Đố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)Bài tập và câu đố Python
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.
- Hơn 15 bài tập và câu đố dành riêng cho chủ đềTopic-specific Exercises and Quizzes
- Mỗi bài tập chứa 10 câu hỏi
- Mỗi bài kiểm tra chứa 12-15 mcq