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