-4

我对 Python 有点陌生。我需要两个功能。第一个应该获取当前日期,然后返回该月的开始和结束日期,例如,如果当前日期是 02/12/2012,它应该返回 02/01/2012 和 02/29/2012。第二个函数执行类似的操作,但返回上个月的开始和结束日期。请问我怎么能在Python中做到这一点?感谢期待

4

1 回答 1

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))
于 2012-05-15T23:21:47.633 回答