-4
我對Python有點新鮮。我需要兩個功能。第一個應該獲取當前日期,然後返回該月的開始日期和結束日期,例如當前日期爲2012年12月12日,則應返回2012年2月1日和2012年2月29日。第二個函數做了類似的事情,但返回上個月的開始日期&。請問我該如何在Python中做到這一點?預計感謝一些Python日期操作
我對Python有點新鮮。我需要兩個功能。第一個應該獲取當前日期,然後返回該月的開始日期和結束日期,例如當前日期爲2012年12月12日,則應返回2012年2月1日和2012年2月29日。第二個函數做了類似的事情,但返回上個月的開始日期&。請問我該如何在Python中做到這一點?預計感謝一些Python日期操作
好的 - 我很無聊。
首先,除非你是來自火星或某個地方,否則我們在地球上每個月都會開始使用1
。安全的假設。
唯一具有挑戰性的部分是本月的天數。你可以從calendar.monthrange()
>>> import calendar
>>> calendar.monthrange(2012,2)
(2, 29)
第二個數字有當月在這一年結束的一天。所以,你可以這樣做:
import calendar
import datetime
def mSandE(yy,mm):
lastDay=calendar.monthrange(yy,mm)[1]
dt1=datetime.date(yy, mm, 1)
dt2=datetime.date(yy, mm, lastDay)
return (dt1, dt2)
def prevmSandE(yy,mm):
dt=mSandE(yy,mm)[0]
dt=dt-datetime.timedelta(days=1)
lastDay=calendar.monthrange(dt.year,dt.month)[1]
return (dt.replace(day=1),datetime.date(dt.year,dt.month,lastDay))
print mSandE(2012,2)
print prevmSandE(2012,2)
print prevmSandE(2012,1)
打印:
(datetime.date(2012, 2, 1), datetime.date(2012, 2, 29))
(datetime.date(2012, 1, 1), datetime.date(2012, 1, 31))
(datetime.date(2011, 12, 1), datetime.date(2011, 12, 31))
@ IgnacioVazquez - 艾布拉姆斯同意。這是一個公然的'爲我做',並表明完全沒有努力。顯示一些代碼。 –