Hướng dẫn python convert date difference to integer - python chuyển đổi chênh lệch ngày thành số nguyên

Tôi đã RTFM và đọc nhiều câu hỏi và câu trả lời ở đây về vấn đề này, và đã vui vẻ sử dụng thời gian và thời gian diễn ra ngày hôm qua, vì vậy tôi sẽ thề điều này sẽ hoạt động, nhưng nó không phải là ....

Tôi chỉ muốn một số nguyên. Không phải là "đối tượng Timedelta." Không phải là một "đối tượng có thể băm" (xem, tôi rtfm). Không phải là một tuple. Không phải là một từ điển. Chỉ là một số nguyên kỳ dị đơn giản để tôi có thể sử dụng một câu lệnh IF và chi nhánh và hạnh phúc. Vui lòng mang đến ánh sáng của sự khôn ngoan của bạn về điều này, với lời cảm ơn.

Đây là những gì tôi có

...
import datetime
mdate = "2010-10-05"
rdate = "2010-10-05"
mdate1 = datetime.strptime(mdate, "%Y-%m-%d")
rdate1 = datetime.strptime(rdate, "%Y-%m-%d")
delta =  datetime.timedelta.days(mdate1 - rdate1)

Đây là những gì tôi nhận được:

pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
(error hits in the 'mdate1..." line above)

Và, điều đó không có nghĩa là dòng delta của tôi sẽ hoạt động - xin vui lòng nhìn vào cái đó.

Trong Python, thật đơn giản để tìm thấy những ngày giữa hai ngày ở Python. Tất cả bạn phải làm là trừ ngày bắt đầu với ngày cuối cùng. Kết quả sẽ là một đối tượng Timedelta. Nếu bạn chỉ muốn số ngày giữa các ngày DWO dưới dạng giá trị số nguyên, thì bạn có thể sử dụng thuộc tính Days Days Days Days Timedelta, để có được những ngày trong số nguyên. Đây là một ví dụ.timedelta object. If you want just the number of days between dwo dates as an integer value, then you can use the timedelta object’s days attribute, to get the days in integer. Here is an example.

## Difference between two dates
from datetime import date

# date objects
date_1 = date(year=2006, month=11, day=23)
date_2 = date(year=2005, month=3, day=1)

# difference between days
date_delta = date_1 - date_2        # date difference in timedelta data type
number_of_days = date_delta.days    # days in integer

print("\nDate difference: ", number_of_days, "\n")

Hướng dẫn python convert date difference to integer - python chuyển đổi chênh lệch ngày thành số nguyên

Những bài viết liên quan

  • Thêm và trừ đối tượng DateTime với đối tượng thời gian trong Python.
  • Làm thế nào để làm cho chương trình Python ngủ trong vài micro giây?

Tài liệu tham khảo

  • Thông tin thêm về đối tượng ngày trong mô -đun DateTime tại Python Docs.


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

    pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
    (error hits in the 'mdate1..." line above)
    
    1 để nhập lớp
    pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
    (error hits in the 'mdate1..." line above)
    
    2 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 chức năng

    pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
    (error hits in the 'mdate1..." line above)
    
    3 để chuyển đổi chuỗi ngày thành đối tượng DateTime theo ____ 14 tương ứng. Mã định dạ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
    pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
    (error hits in the 'mdate1..." line above)
    
    5 dành cho
    pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
    (error hits in the 'mdate1..." line above)
    
    6
    Use the
    pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
    (error hits in the 'mdate1..." line above)
    
    3 function to convert a date string into a datetime object as per the corresponding
    pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
    (error hits in the 'mdate1..." line above)
    
    4.
    The format codes are standard directives for mentioning the format of the string for parsing. For example, the
    pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
    (error hits in the 'mdate1..." line above)
    
    5 format codes are for
    pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
    (error hits in the 'mdate1..." line above)
    
    6

  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

    pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
    (error hits in the 'mdate1..." line above)
    
    7

  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

    pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
    (error hits in the 'mdate1..." line above)
    
    8

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 pmain.py:4: AttributeError: 'module' object has no attribute 'strptime' (error hits in the 'mdate1..." line above) 9

Có những trường hợp bạn nhận được ngày trong một đối tượng

pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
(error hits in the 'mdate1..." line above)
9 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 pmain.py:4: AttributeError: 'module' object has no attribute 'strptime' (error hits in the 'mdate1..." line above) 2

Chúng ta cần làm việc với một đối tượng DateTime thay vì

pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
(error hits in the 'mdate1..." line above)
9 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
    pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
    (error hits in the 'mdate1..." line above)
    
    2 bằng & nbsp; ________ 24 & nbsp;
  • Tiếp theo, tính toán sự khác biệt bằng cách trừ
    ## Difference between two dates
    from datetime import date
    
    # date objects
    date_1 = date(year=2006, month=11, day=23)
    date_2 = date(year=2005, month=3, day=1)
    
    # difference between days
    date_delta = date_1 - date_2        # date difference in timedelta data type
    number_of_days = date_delta.days    # days in integer
    
    print("\nDate difference: ", number_of_days, "\n")
    
    5 từ
    ## Difference between two dates
    from datetime import date
    
    # date objects
    date_1 = date(year=2006, month=11, day=23)
    date_2 = date(year=2005, month=3, day=1)
    
    # difference between days
    date_delta = date_1 - date_2        # date difference in timedelta data type
    number_of_days = date_delta.days    # days in integer
    
    print("\nDate difference: ", number_of_days, "\n")
    
    6.

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::

pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
(error hits in the 'mdate1..." line above)
0

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