如何顯示5年5天后:Python編程:從我目前的時間 實例添加年內當前時間
Year : 2017
newYear: 2022
怎麼辦呢? 我現在的時間格式如下:
import datetime
X=datetime.datetime.now()
print ("year:%s" %x.year)
如何顯示5年5天后:Python編程:從我目前的時間 實例添加年內當前時間
Year : 2017
newYear: 2022
怎麼辦呢? 我現在的時間格式如下:
import datetime
X=datetime.datetime.now()
print ("year:%s" %x.year)
這也許是:
from calendar import isleap
from datetime import datetime, timedelta
X=datetime.now()
day_count = sum(365 + isleap(yr) for yr in range(X.year + 1, X.year + 6)) + 5
Y = X + timedelta(days=day_count)
注:timedelta
不直接接受years
,你必須使用days
做到這一點。這不是最好的方法,但可以這樣做。
從未聽說過閏年? –
@brunodesthuilliers我編輯包括閏年 – Eduardo
@Eduardo可以使用'calendar.isleap'而不是在這裏滾動自己的... –
這是最簡單的使用第三方dateutil
和relativedelta
這裏它方便地採用years
作爲增量選項,將處理閏年的你,如:
from dateutil.relativedelta import relativedelta
dt = datetime.now() + relativedelta(years=5, days=5)
# datetime.datetime(2022, 9, 4, 13, 49, 33, 650299)
或者你可以使用arrow
:
>>> import arrow
>>> ar = arrow.utcnow()
>>> ar.shift(years=5, days=5)
<Arrow [2022-09-04T12:50:26.609842+00:00]>
總是忘記箭頭,這是相當不錯的,你可以做'arrow.utcnow()。移(年= 5,天= 5)'直接... –
對不起,我遲到了,過去幾天我都很忙。 我的代碼首先將5年添加到當前年份,然後添加5天,如果超過允許的最大值,請確保更改它。 (8月份爲31)但您可以在其他月份擴展它。這只是概念。
import datetime
X=datetime.datetime.now()
print ("year:%s" %X.year)
newY = X.year + 5
print("new year: %s" %newY)
newD = X.day + 5
if X.month == 1 or X.month == 3 or X.month == 5 or X.month == 7 or X.month == 8 or X.month == 10 or X.month == 11 or X.month == 12:
# Test if the Month has 31 days
if X.day + 5 > 31:
op1 = X.day + 5
op2 = op1 - 31
new = X.month + 1
print("month: {}".format(new))
newXD = None
您可以調整[這個答案](https://stackoverflow.com/questions/13685201/how-to-add-hours-to-current-time-in-python/13685221#13685221)使用(time = 5,days = 5)'...... –
@JonClements'class datetime.timedelta(days = 0,seconds = 0,microseconds = 0,milliseconds = 0,minutes = 0,hours = 0,weeks = 0)'從文檔https://docs.python.org/3/library/datetime.html#datetime.timedelta。似乎沒有多年的爭論。我認爲你錯了。 – void
@s_vishnu哎呀 - 混淆與dateutil的relativedelta ... –