如何使用Python打印下一年每個月的最後一個星期二的日期。使用Python下一年每個月的上個星期二的打印日期
例如輸出的第一行是:30 /月/ 2018
我不希望有一個月的全名,僅前3個字符!
目前我已經找到了如何讓明年:
import datetime
now = datetime.datetime.now()
next_year = now.year + 1
任何人都可以請幫助?
如何使用Python打印下一年每個月的最後一個星期二的日期。使用Python下一年每個月的上個星期二的打印日期
例如輸出的第一行是:30 /月/ 2018
我不希望有一個月的全名,僅前3個字符!
目前我已經找到了如何讓明年:
import datetime
now = datetime.datetime.now()
next_year = now.year + 1
任何人都可以請幫助?
的calendar模塊非常適合這樣的:
您可以使用calendar.month_abbr這就像你想的 縮寫個月的數組。
week
是一個數組,表示從星期一開始的星期幾,所以星期二將是week[1]
。
import calendar
import datetime
now = datetime.datetime.now()
next_year = now.year + 1
for month in range(1, 13):
last_tuesday = max(week[1] for week in calendar.monthcalendar(next_year, month))
print('{}/{}/{}'.format(last_tuesday, calendar.month_abbr[month], next_year))
輸出:
30/Jan/2018
27/Feb/2018
27/Mar/2018
24/Apr/2018
29/May/2018
26/Jun/2018
31/Jul/2018
28/Aug/2018
25/Sep/2018
30/Oct/2018
27/Nov/2018
25/Dec/2018
我也建議DateOffset反對LastWeekOfMonth
大熊貓。
介紹上週月份月度日期像這樣
from pandas.tseries.offsets import LastWeekOfMonth
def last_tues(year):
return (pd.date_range('1/1/' + str(year), periods=12, freq='M')
- LastWeekOfMonth(n=1, weekday=1)).strftime('%d/%b/%Y'))
last_tues(2018)
Out[31]:
array(['30/Jan/2018', '27/Feb/2018', '27/Mar/2018', '24/Apr/2018',
'29/May/2018', '26/Jun/2018', '26/Jun/2018', '28/Aug/2018',
'25/Sep/2018', '30/Oct/2018', '27/Nov/2018', '25/Dec/2018'],
dtype='<U11')
感謝「每個月的最後一個星期二 」 –