Python-在前一周的同一天遍历
我是python新手,我有以下用例: 请参阅以下日历: 今天的日期是2018年9月12日。 我想在其他条件下对前一天进行一些计算。 我使用以下代码检索了昨天的日期:Python-在前一周的同一天遍历,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我是python新手,我有以下用例: 请参阅以下日历: 今天的日期是2018年9月12日。 我想在其他条件下对前一天进行一些计算。 我使用以下代码检索了昨天的日期: yesterday_date = datetime.strftime(datetime.now() - timedelta(1), '%Y-%m-%d') yesterday_day = datetime.strftime(datetime.now() - timedelta(1), '%A') 现在我想在前一周的同一天进行一些
yesterday_date = datetime.strftime(datetime.now() - timedelta(1), '%Y-%m-%d')
yesterday_day = datetime.strftime(datetime.now() - timedelta(1), '%A')
现在我想在前一周的同一天进行一些计算。例如:我想得到前一周同一天的日期
(星期二)。因此,基本上我想连续迭代前一周的日期,与我昨天的日期相同,并执行一些计算
Yesterday Date : 2018-09-11
Yesterday Day : Tuesday
所以我的输出应该是:
2018-09-04
2018-08-28
2018-08-21
2018-08-14
2018-08-07
等等
如何实现这一点?这可以通过while循环和使用
timedelta(days=days\u to\u减法)
这可以通过while循环和使用
timedelta(days=days-to-subtract)
假设您希望打印昨天日期的最后5个实例:
yesterday = datetime.now() - timedelta(days=1)
for i in range(0, 5):
prev_date = yesterday - timedelta(days=i*7)
print(datetime.strftime(prev_date, '%Y-%m-%d'))
或者,如果需要datetime对象的列表:
yesterday = datetime.now() - timedelta(days=1)
prev_dates = [yesterday - timedelta(days=i*7) for i in range(0, 5)]
假设您希望打印昨天日期的最后5个实例:
yesterday = datetime.now() - timedelta(days=1)
for i in range(0, 5):
prev_date = yesterday - timedelta(days=i*7)
print(datetime.strftime(prev_date, '%Y-%m-%d'))
或者,如果需要datetime对象的列表:
yesterday = datetime.now() - timedelta(days=1)
prev_dates = [yesterday - timedelta(days=i*7) for i in range(0, 5)]
尝试循环并使用临时变量:
from datetime import datetime, timedelta
yesterday_date = datetime.strftime(datetime.now() - timedelta(1), '%Y-%m-%d')
yesterday_day = datetime.strftime(datetime.now() - timedelta(1), '%A')
date_temp = datetime.now() - timedelta(1)
for i in range(5):
yesterday_date = datetime.strftime(date_temp - timedelta(7), '%Y-%m-%d')
yesterday_day = datetime.strftime(date_temp - timedelta(7), '%A')
date_temp = date_temp - timedelta(7)
print(yesterday_date, yesterday_day, date_temp)
输出:
2018-09-04 Tuesday 2018-09-04 17:04:43.470056
2018-08-28 Tuesday 2018-08-28 17:04:43.470056
2018-08-21 Tuesday 2018-08-21 17:04:43.470056
2018-08-14 Tuesday 2018-08-14 17:04:43.470056
2018-08-07 Tuesday 2018-08-07 17:04:43.470056
尝试循环并使用临时变量:
from datetime import datetime, timedelta
yesterday_date = datetime.strftime(datetime.now() - timedelta(1), '%Y-%m-%d')
yesterday_day = datetime.strftime(datetime.now() - timedelta(1), '%A')
date_temp = datetime.now() - timedelta(1)
for i in range(5):
yesterday_date = datetime.strftime(date_temp - timedelta(7), '%Y-%m-%d')
yesterday_day = datetime.strftime(date_temp - timedelta(7), '%A')
date_temp = date_temp - timedelta(7)
print(yesterday_date, yesterday_day, date_temp)
输出:
2018-09-04 Tuesday 2018-09-04 17:04:43.470056
2018-08-28 Tuesday 2018-08-28 17:04:43.470056
2018-08-21 Tuesday 2018-08-21 17:04:43.470056
2018-08-14 Tuesday 2018-08-14 17:04:43.470056
2018-08-07 Tuesday 2018-08-07 17:04:43.470056
日期-=时间差(天=7)?然后在循环中重复。将
timedelta(1)
更改为某个变量值怎么样?日期-=timedelta(天=7)?然后在循环中重复。将timedelta(1)
更改为某个变量值怎么样?1。您不需要在循环之外进行额外的计算。2.Python中的注释不是这样的。3.这个循环将永远迭代。@MadPhysician你完全正确。我已经编辑了答案。您不需要在循环之外进行额外的计算。2.Python中的注释不是这样的。3.这个循环将永远迭代。@MadPhysician你完全正确。我已经编辑了答案。