Hướng dẫn subtract 1 month from date in python - trừ đi 1 tháng kể từ ngày trong python

Thử cái này:

def monthdelta(date, delta):
    m, y = (date.month+delta) % 12, date.year + ((date.month)+delta-1) // 12
    if not m: m = 12
    d = min(date.day, [31,
        29 if y%4==0 and (not y%100==0 or y%400 == 0) else 28,
        31,30,31,30,31,31,30,31,30,31][m-1])
    return date.replace(day=d,month=m, year=y)

>>> for m in range(-12, 12):
    print(monthdelta(datetime.now(), m))

    
2009-08-06 16:12:27.823000
2009-09-06 16:12:27.855000
2009-10-06 16:12:27.870000
2009-11-06 16:12:27.870000
2009-12-06 16:12:27.870000
2010-01-06 16:12:27.870000
2010-02-06 16:12:27.870000
2010-03-06 16:12:27.886000
2010-04-06 16:12:27.886000
2010-05-06 16:12:27.886000
2010-06-06 16:12:27.886000
2010-07-06 16:12:27.886000
2010-08-06 16:12:27.901000
2010-09-06 16:12:27.901000
2010-10-06 16:12:27.901000
2010-11-06 16:12:27.901000
2010-12-06 16:12:27.901000
2011-01-06 16:12:27.917000
2011-02-06 16:12:27.917000
2011-03-06 16:12:27.917000
2011-04-06 16:12:27.917000
2011-05-06 16:12:27.917000
2011-06-06 16:12:27.933000
2011-07-06 16:12:27.933000
>>> monthdelta(datetime(2010,3,30), -1)
datetime.datetime(2010, 2, 28, 0, 0)
>>> monthdelta(datetime(2008,3,30), -1)
datetime.datetime(2008, 2, 29, 0, 0)

Chỉnh sửa sửa để xử lý ngày là tốt. Corrected to handle the day as well.

Chỉnh sửa Xem thêm câu trả lời từ sự bối rối chỉ ra một phép tính đơn giản hơn cho d: See also the answer from puzzlement which points out a simpler calculation for d:

d = min(date.day, calendar.monthrange(y, m)[1])

Mã python: Từ ngày nhập DateTime, Timedelta Nhập lịch start_date = date (2014, 12, 25) days_in_month = lịch. ...

Trình chỉnh sửa mã Python:.

Làm thế nào để bạn trừ một ngày từ một chuỗi trong Python?

Sử dụng hàm Strptime (DATE_STR, Định dạng) để chuyển đổi chuỗi ngày thành đối tượng DateTime theo định dạng tương ứng. Để 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.dateutil module provides a class relativedelta, which represents an interval of time. The relativedelta class has following attributes which tells about the duration,

  • Trong artilce này, chúng tôi sẽ thảo luận về các cách khác nhau để trừ các tháng kể từ một ngày nhất định ở Python.
  • Giả sử chúng ta có một ngày2121/1/2021 và chúng ta muốn trừ n tháng từ nó và n có thể là 1, 20, 50 hoặc bất kỳ số nào khác. Chúng tôi muốn ngày cuối cùng sau khi trừ n tháng kể từ ngày nhất định. Hãy để xem cách làm điều đó,
  • Trừ những tháng kể từ một ngày ở Python sử dụng Relativeselta
  • Trong Python, mô -đun DateUtil cung cấp một lớp tương đối, đại diện cho một khoảng thời gian. Lớp tương đối được
  • Năm
  • Tháng
  • Ngày

Giờrelativedelta object representing the interval of N months and then subtract that from the datetime object to get the final date.

Phút

Quảng cáo

Bước 1: Nếu ngày đã cho ở định dạng chuỗi, thì chúng ta cần chuyển đổi nó thành đối tượng DateTime. Cho rằng chúng ta có thể sử dụng hàm DateTime.strptime (). Trong khi đó, nếu ngày đã cho đã là một đối tượng DateTime, thì bạn có thể bỏ qua bước này. Đối với điều đó, hãy vượt qua các tháng đối số với giá trị n trong hàm tạo RelativeSelta.Step 3: Trừ đối tượng RelativeSelta từ đối tượng DateTime. Nó sẽ cung cấp cho chúng tôi một điểm đối tượng DateTime đến một ngày, tức là n tháng trước ngày đã cho. Bạn có thể chuyển chuỗi định dạng làm đối số và nó sẽ chuyển đổi đối tượng DateTime thành một chuỗi của định dạng được chỉ định. If the given date is in a string format, then we need to convert it to the datetime object. For that we can use the datetime.strptime() function. Whereas, if the given date is already a datetime object, then you can skip this step.
Step 2: Create an object of relativedelta, to represent an interval of N months. For that, pass the argument months with value N in the relativedelta constructor.
Step 3: Subtract the relativedelta object from the datetime object. It will give us a datetime object point to a date i.e. N months before the given date.
Step 4: If you want the final date in string format, then convert the datetime object to string using strftime(). You can pass the format string as argument and it will convert the datetime object to a string of the specified format.

Hãy để hiểu với một ví dụ,

Trừ 20 tháng đến một ngày ở Python

from datetime import datetime
from dateutil.relativedelta import relativedelta

given_date = '21/1/2021'
print('Give Date: ', given_date)

date_format = '%d/%m/%Y'
dtObj = datetime.strptime(given_date, date_format)

# Subtract 20 months from a given datetime object
n = 20
past_date = dtObj - relativedelta(months=n)

print('Past Date: ', past_date)
print('Past Date: ', past_date.date())

# Convert datetime object to string in required format
past_date_str = past_date.strftime(date_format)
print('Past Date as string object: ', past_date_str)

Đầu ra

Give Date:  21/1/2021
Past Date:  2019-05-21 00:00:00        
Past Date:  2019-05-21
Past Date as string object:  21/05/2019

Chúng tôi đã trừ 20 tháng trong ngày 2121/1/2021 để làm cho nó là2121/05/2019.

Khi chúng tôi trừ đi tương đối (thời lượng 20 tháng) từ đối tượng DateTime, do đó, nó đã trả về một đối tượng DateTime mới chỉ vào ngày cuối cùng. Vì đối tượng DateTime cũng có dấu thời gian, do đó nó cũng được in. Nếu bạn chỉ muốn ngày, thì bạn có thể lấy đối tượng ngày từ đối tượng DateTime bằng hàm Date (), giống như chúng tôi đã làm trong ví dụ trên. Cuối cùng, chúng tôi đã chuyển đổi đối tượng DateTime thành định dạng chuỗi cần thiết bằng cách sử dụng DateTime.strftime ().

Pandas cung cấp một ngày học lớp, để lưu trữ thông tin thời lượng hoặc khoảng. Nó chủ yếu được sử dụng để tăng hoặc giảm dấu thời gian. Nó có thể được sử dụng với mô -đun DateTime để trừ n tháng kể từ ngày.provide a class DateOffset, to store the duration or interval information. It is mostly used to increment or decrement a timestamp. It can be used with datetime module to to subtract N months from a date.

Hãy để hiểu với một ví dụ,

Trừ 10 tháng kể từ một ngày ở Python

from datetime import datetime
import pandas as pd

given_date = '1/21/2021'
print('Give Date: ', given_date)

# Convert date string to datetime object
date_format = '%m/%d/%Y'
dtObj = datetime.strptime(given_date, date_format)

# Subtract 10 months from a given datetime object
n = 10
past_date = dtObj - pd.DateOffset(months=n)

print('Past Date: ', past_date)
print('Past Date: ', past_date.date())

# Convert datetime object to string in required format
past_date_str = past_date.strftime(date_format)
print('Past Date as string object: ', past_date_str)

Đầu ra

Give Date:  1/21/2021
Past Date:  2020-03-21 00:00:00        
Past Date:  2020-03-21
Past Date as string object:  03/21/2020

Chúng tôi đã trừ 20 tháng trong ngày 2121/1/2021 để làm cho nó là2121/05/2019.

Summary:

Khi chúng tôi trừ đi tương đối (thời lượng 20 tháng) từ đối tượng DateTime, do đó, nó đã trả về một đối tượng DateTime mới chỉ vào ngày cuối cùng. Vì đối tượng DateTime cũng có dấu thời gian, do đó nó cũng được in. Nếu bạn chỉ muốn ngày, thì bạn có thể lấy đối tượng ngày từ đối tượng DateTime bằng hàm Date (), giống như chúng tôi đã làm trong ví dụ trên. Cuối cùng, chúng tôi đã chuyển đổi đối tượng DateTime thành định dạng chuỗi cần thiết bằng cách sử dụng DateTime.strftime ().

Làm thế nào để tôi trừ một tháng kể từ một ngày ở Python?

Cách dễ nhất để trừ tháng kể từ một ngày ở Python là sử dụng phần mở rộng DateUtil. Đối tượng tương đối từ ngày DateUtil. Mô -đun tương đối cho phép bạn trừ bất kỳ số tháng nào từ một đối tượng ngày.use the dateutil extension. The relativedelta object from the dateutil. relativedelta module allows you to subtract any number of months from a date object.

Làm thế nào để bạn trừ ngày trong Python?

Để thêm hoặc trừ ngày, chúng tôi sử dụng một thứ gọi là hàm TimedelTa () có thể được tìm thấy trong lớp DateTime. Nó được sử dụng để thao tác ngày và chúng ta có thể thực hiện các hoạt động số học trên các ngày như thêm hoặc trừ.timedelta() function which can be found under the DateTime class. It is used to manipulate Date, and we can perform arithmetic operations on dates like adding or subtracting.

Làm thế nào để bạn tăng một tháng trong Python?

Python: Thêm một tháng với một ngày xác định..
Giải pháp mẫu:.
Mã python: Từ ngày nhập DateTime, Timedelta Nhập lịch start_date = date (2014, 12, 25) days_in_month = lịch....
Flowchart:.
Trình chỉnh sửa mã Python:.

Làm thế nào để bạn trừ một ngày từ một chuỗi trong Python?

Sử dụng hàm Strptime (DATE_STR, Định dạng) để chuyển đổi chuỗi ngày thành đối tượng DateTime theo định dạng tương ứng.Để 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.subtract date2 from date1. A result is a timedelta object.