3

の開始日があるとしましょうdatetime(2007, 2, 15)

この日付をループして、毎月 1 日と 15 日に進めたいと考えています。

にステップdatetime(2007, 2, 15)datetime(2007, 3, 1)ます。

次の反復では、datetime(2007, 3, 15)... に進み、次に ... に進みdatetime(2007, 4, 1)ます。

これを行う方法はありますか、timedeltaまたはそれdateutilsを考慮して、歩かなければならない日数が絶えず変化しますか?

4

3 に答える 3

1

私は毎日繰り返し、月の日が 1 または 15 でない日付を無視します。例:

import datetime

current_time = datetime.datetime(2007,2,15)
end_time = datetime.datetime(2008,4,1)

while current_time <= end_time:
  if current_time.day in [1,15]:
    print(current_time)
  current_time += datetime.timedelta(days=1)

このようにして、複数年にわたって反復し、15 日から開始することができますが、どちらも doog のソリューションでは問題になります。

于 2013-10-09T19:43:45.340 に答える