-4

私はPythonに少し慣れていません。2つの機能が必要です。1 つ目は、現在の日付を取得し、その月の開始日と終了日を返すことになっています。たとえば、現在の日付が 2012 年 2 月 12 日であれば、2012 年 2 月 1 日と 2012 年 2 月 29 日を返す必要があります。2 番目の関数は同様のことを行いますが、代わりに前月の開始日と終了日を返します。Pythonでそれを行うにはどうすればよいですか? よろしくお願いします

4

1 に答える 1

1

OK -- 退屈だ。

まず、あなたが火星かどこかの出身でない限り、ここ地球上の私たちは毎月 で始まります1。安全な仮定。

唯一の難しい部分は、月の日数です。calendar.monthrange()から取得できます

>>> import calendar
>>> calendar.monthrange(2012,2)
(2, 29)

2 番目の数字は、その年のその月の最終日です。したがって、次のことができます。

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 に答える