Переход на летнее время 2018 года начался в 2:00 утра 11 марта 2018 года. Таким образом, этот день не был 86400
секундами.
Как вы можете видеть, вычитание 86400
секунд не является хорошим способом для вычисления различий в днях. В общем, все математические операции с датой и временем немного сложнее, чем простые умножения и добавления, связанные с такими вещами, как часовые пояса, переход на летнее время и високосные годы.
Лучше использовать библиотеку, такую как datetime
, которая обрабатывает все эти вещи для вас:
from datetime import datetime, timedelta
day = str(20180313)
for i in range(1, 5):
print(day)
previous_day = (datetime.strptime(day, "%Y%m%d") - timedelta(days=1))
day = previous_day.strftime("%Y%m%d")
#20180313
#20180312
#20180311
#20180310