gpt4 book ai didi

python - 在给定开始日期时间和结束日期时间的情况下,引用一个月中的每一天

转载 作者:行者123 更新时间:2023-11-28 21:38:08 29 4
gpt4 key购买 nike

正如标题所说,我正在尝试生成一个日期时间列表,该列表对应于两个日期之间一个月中特定日期的出现。

所以给定一个开始日期、一个结束日期和一个月中的某一天,我想查看每个月的那一天出现的情况:

from datetime import datetime

end_date = datetime(2012, 9, 15, 0, 0)
start_date = datetime(2012, 6, 1, 0, 0)
day_of_month = 16

dates = "magic code goes here"

dates 将保存一个这样的数组:

dates == [
datetime(2012, 6, 16, 0, 0),
datetime(2012, 7, 16, 0, 0),
datetime(2012, 8, 16, 0, 0)
]

我遇到的问题是我必须执行的检查次数。首先我必须检查它是否是开始年份,如果是,那么我必须从开始月份开始,但如果该月的日期早于开始日期,那么我必须跳过那个月。这同样适用于期末。更不用说我必须检查这段时间是否在同一年开始和结束。总而言之,它变成了一堆嵌套的 iffor 语句。

这是我的解决方案:

import numpy as np
for year in np.arange(start_date.year, end_date.year + 1):
for month in np.arange(1, 13):
date = datetime(year, month, day_of_month, 0, 0)
if start_date < date < end_date:
dates.append(date)

是否有更 Pythonic 的方法来完成这个?

最佳答案

这是一个快速而肮脏(但相当有效)的解决方案:

import datetime
d = start_date
days = []
while d <= end_date: # Change to < if you do not want the end_date
if d.day == day_of_month:
days.append(d)
d += datetime.timedelta(1)
days
# [datetime.datetime(2012, 6, 16, 0, 0),
# datetime.datetime(2012, 7, 16, 0, 0),
# datetime.datetime(2012, 8, 16, 0, 0)]

理想情况下,您希望为此使用 pandas

关于python - 在给定开始日期时间和结束日期时间的情况下,引用一个月中的每一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48602954/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com