python - 如何使 datetime.date 更具动态性而不是手动输入年份?
问题描述
我想通过使用“下次是 8 月 1 日”之类的日期来使我的代码更加动态。
if form.cleaned_data['occurrence'] == 'weekly':
start_date = tutor_session_form.cleaned_data['date']
while start_date < date(2020, 8, 1):
MyModel.objects.create(name=form.cleaned_data['name'], date=start_date,)
start_date += timedelta(days=7)
else:
form.save()
所以这适用于我想要它做的事情,但我不想手动更改每年日期中的年份,我希望它自动使用“下次是 8 月 1 日”的内容。
我可以使用“当前年份 + 1”,但如果在 2020 年 2 月使用它,那么它将在 2021 年 8 月 1 日成为条件,那时我仍然希望它是 2020 年。对此的任何帮助将不胜感激!
解决方案
您可以使用函数来查找下一个 8 月 1 日(相对于代码运行的时间):
import datetime
def get_next_august():
today = datetime.datetime.today()
year = today.year
month = today.month
if month >= 8:
year += 1
return datetime.datetime(year, 8, 1)
然后,您可以将代码中的硬编码日期替换为get_next_august()
推荐阅读
- react-native - undefined 不是对象(tensorflow imagerecognition)
- audio - 直接从 python 程序播放音频(文本到语音)
- idris - Idris - 一般为接口创建可判定的属性/证明
- python - openpyxl单元格与边框合并?
- jq - jq:递归重命名键
- ios - Swift 故事板 - 使用 calloutaccessorycontroltapped 披露按钮在 MapView 中创建转场
- python - Plotly Legent Aa 标签如何删除它们
- python - 测试最佳神经元数量 - Keras/Tensorflow
- ios - 在 UserDefaults 中保存项目数组 - iOS 12
- reactjs - React Semantic UI - 将图标放置在菜单项中的文本左侧