当前位置: 首页 > 知识库问答 >
问题:

javascript - 未来一段时间,每个月有几个礼拜几?

段曦
2023-05-08

题目

未来一段时间内(一年或者几年或者几个月,按月为最小单位),其中的每个月里,会出现几个星期几(一二三四五六七)?

场景

设置定时任务,周期为每个月4次,并且是每个月的固定前4个星期几去执行。

说明:每个月会有不固定个数的星期几是会出现五次的(1个或最多3个吧),所以需要提前一段时间预判一下未来的情况,也许有其他的场景也是类似。
也想过每7天执行一次,最多4次的方法,不过还是感觉有点不同的。
总之还是需要先整出来看看。

哪位大神无聊了写个方法出来吧,语言也不限制啊,别用太低级的语言就行了,有注释的话更好哈。

共有1个答案

符正信
2023-05-08

用的Python :

from datetime import datetime, timedelta

def count_weekdays(start_date, end_date, weekday):
    start_date = datetime.strptime(start_date, '%Y-%m-%d')
    end_date = datetime.strptime(end_date, '%Y-%m-%d')

    current_date = start_date
    month_count = {}

    while current_date <= end_date:
        current_month = current_date.strftime('%Y-%m')
        if current_date.weekday() == weekday:
            if current_month not in month_count:
                month_count[current_month] = 0
            month_count[current_month] += 1

        current_date += timedelta(days=1)

    return month_count

# 用法:
start_date = '2023-05-01'
end_date = '2024-04-30'
weekday_to_count = 2  # 0 for Monday, 1 for Tuesday, etc.

print(count_weekdays(start_date, end_date, weekday_to_count))
 类似资料:
  • 问题内容: 如何在几天,几小时,几周或几个月后迭代一个时间跨度? 就像是: 其中foo是一个函数,返回一个迭代器。我一直在研究日历模块,但是它仅适用于特定的一年或一个月,不适用于日期之间。 问题答案: 使用dateutil及其rrule实现,如下所示: 输出为 将“每月”替换为“每年”,“每月”,“每周”,“每天”,“每小时”,“半年”或“第二”。替换dtstart,直到您想要的任何datetim

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

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

  • 本文向大家介绍Python计算一个给定时间点前一个月和后一个月第一天的方法,包括了Python计算一个给定时间点前一个月和后一个月第一天的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python计算一个给定时间点前一个月和后一个月第一天的方法。分享给大家供大家参考,具体如下: python如何获取一个时间点的前一个月和后一个月,网上虽然有很多教程,但是本人感觉太杂了而且不太好用,研

  • 我如何设置一个cron运行每天从12点到11点,它将暂停20分钟,并将重新启动在上午11点20分。例如,有谁能帮助我如何做到这一点在spring-引导?

  • 假设我有一个Java类... 我想将这个单独的类与两个不同的服务一起使用。然而,这两种服务在返回数据的方式上有所不同。 ...还有...