0

過去 7 日間の特定の計算を振り返るループを作成する必要があります。現在、次のようにループを構成していますが、前の月の日に当たると問題が発生します。

cmm = datetime.datetime.now().strftime("%m")#current month
cdd = datetime.datetime.now().strftime("%d") #current date
cyyyy = datetime.datetime.now().strftime("20%y") #current year
refdate = cyyyy + '-' + cmm + '-' + cdd + 'T'

D7 = [1,2,3,4,5,6,7]
for i in D7:

date = cyyyy + '-' + cmm + '-' + str(int(cdd) - i) + 'T'
print(date, "  ", "NUU", " NUU1", " NUU2", " NUU3", " NUU4", " NUU5", " NUU6")

出力:

2013-10-3T    NUU  NUU1  NUU2  NUU3  NUU4  NUU5  NUU6
2013-10-2T    NUU  NUU1  NUU2  NUU3  NUU4  NUU5  NUU6
2013-10-1T    NUU  NUU1  NUU2  NUU3  NUU4  NUU5  NUU6
2013-10-0T    NUU  NUU1  NUU2  NUU3  NUU4  NUU5  NUU6
2013-10--1T    NUU  NUU1  NUU2  NUU3  NUU4  NUU5  NUU6
2013-10--2T    NUU  NUU1  NUU2  NUU3  NUU4  NUU5  NUU6
2013-10--3T    NUU  NUU1  NUU2  NUU3  NUU4  NUU5  NUU6

ここにリストされている最後の 4 つの日付は、明らかに適切ではありません。

日付は、一部の PyMongo クエリで正規表現を使用して NUU[0-6] の値の計算に使用されています。

多くの時間を無駄にすることなく、ここでどちらの方向に走ればよいかわかりません。tuple_time?

4

1 に答える 1

1

みたいなところから始めてみませんか...

from datetime import datetime, timedelta

# initial_date = datetime.today()
initial_date = datetime(2000, 3, 2)
interval = timedelta(days = 6)
increment = timedelta(days = 1)

i = initial_date - interval
while i <= initial_date:
    print(i)
    i += increment

...必要に応じて各日付をフォーマットしますか?

于 2013-10-31T16:49:17.080 に答える