当前位置: 首页 > 面试题库 >

如何在几天,几小时,几周和几个月之后迭代一个时间跨度?

通煜祺
2023-03-14
问题内容

如何在几天,几小时,几周或几个月后迭代一个时间跨度?

就像是:

for date in foo(from_date, to_date, delta=HOURS):
    print date

其中foo是一个函数,返回一个迭代器。我一直在研究日历模块,但是它仅适用于特定的一年或一个月,不适用于日期之间。


问题答案:

使用dateutil及其rrule实现,如下所示:

from dateutil import rrule
from datetime import datetime, timedelta

now = datetime.now()
hundredDaysLater = now + timedelta(days=100)

for dt in rrule.rrule(rrule.MONTHLY, dtstart=now, until=hundredDaysLater):
    print dt

输出为

2008-09-30 23:29:54
2008-10-30 23:29:54
2008-11-30 23:29:54
2008-12-30 23:29:54

将“每月”替换为“每年”,“每月”,“每周”,“每天”,“每小时”,“半年”或“第二”。替换dtstart,直到您想要的任何datetime对象。

此食谱具有在所有情况下都可以工作的优势,包括MONTHLY。我能发现的唯一警告是,如果您传递了一个并非所有月份都存在的天数,它将跳过那些月份。



 类似资料:
  • 题目 未来一段时间内(一年或者几年或者几个月,按月为最小单位),其中的每个月里,会出现几个星期几(一二三四五六七)? 场景 设置定时任务,周期为每个月4次,并且是每个月的固定前4个星期几去执行。 说明:每个月会有不固定个数的星期几是会出现五次的(1个或最多3个吧),所以需要提前一段时间预判一下未来的情况,也许有其他的场景也是类似。 也想过每7天执行一次,最多4次的方法,不过还是感觉有点不同的。 总

  • 我正在尝试使用JDatePicker来显示日历。然而,我只想显示月份和年份,而不是日期。 我试着四处寻找模型和JDatePickerImpl对象,但没有运气。 以下是我必须向JDatePicker展示的代码,来自文档: 提前谢谢! 注意:这是我的意思的图像。

  • 问题内容: 有几个月使用的好方法吗?需要说明的是:该方法有两列,并返回两个日期之间经过的 天 数。我想在 几个月内得到 。我想在我的函数中有一个参数,可以告诉我检查过去20个月,36个月(无论几个月)中的数据。如果我只是做datediff并将结果除以30(或31),则结果不是很准确。我可以使用30.4166667(= 365天/ 12个月),但这在较短的时间内也不是很准确。那么,有关如何使用它的任

  • 本文向大家介绍js实现时间显示几天前、几小时前或者几分钟前的方法集锦,包括了js实现时间显示几天前、几小时前或者几分钟前的方法集锦的使用技巧和注意事项,需要的朋友参考一下 这里汇总了js实现时间显示几天前、几小时前或者几分钟前的常见方法。分享给大家供大家参考。具体如下: 方法一: 个人做法是保存时间戳,然后在前端用jq插件做转换,比如 smart-time-ago 方法二: (通过freemark

  • 问题内容: 我在我的应用程序中使用了自定义日历。我已为用户提供了选择一周中第一天的选项,可能是: 我想获取一个月中的星期数-取决于星期几的开始时间,而不是星期几的默认值- 。 码: 问题答案: 尝试 在您的情况下,您可能需要执行以下操作: 并用诸如

  • 本文向大家介绍Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前),包括了Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)的使用技巧和注意事项,需要的朋友参考一下 在methods中创建方法showtime,传入要跟当前时间要对比的时间 补充知识:Vue中根据时间戳计算时间间隔-年龄 实现目标 由于数据库没有直接存储用户的年龄,只有以时间戳为格式的出生日期,所以不得不在