Hướng dẫn can you subtract dates in python? - bạn có thể trừ ngày trong python không?

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.

  1. 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.

  2. 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

  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.

  4. 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

  5. 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)

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