2012-05-15 86 views
-4

我對Python有點新鮮。我需要兩個功能。第一個應該獲取當前日期,然後返回該月的開始日期和結束日期,例如當前日期爲2012年12月12日,則應返回2012年2月1日和2012年2月29日。第二個函數做了類似的事情,但返回上個月的開始日期&。請問我該如何在Python中做到這一點?預計感謝一些Python日期操作

+0

@ IgnacioVazquez - 艾布拉姆斯同意。這是一個公然的'爲我做',並表明完全沒有努力。顯示一些代碼。 –

回答

1

好的 - 我很無聊。

首先,除非你是來自火星或某個地方,否則我們在地球上每個月都會開始使用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))