如何使用Python计算一个月内剩余的星期一数

时间:2017-10-25 15:01:47

标签: python

我正在构建Python中的预测模型,需要计算每月每个月名称的剩余天数。例如,2017年10月25日,本月没有剩余的周三,周四,周五,周六,周日,周一和周二仍有1个。

我能够在R中获得相同的结果:

first <- as.Date(cut(Sys.Date(), "month"))
last <- as.Date(cut(first + 31, "month")) - 1
sum(format(seq(Sys.Date(), last, "day"), "%w") == 0) -> Sunday

我正在尝试编辑以下代码块,最初的目的是为了我的目的计算一个月的工作日,但不确定我是否在正确的轨道上

import calendar

weekday_count = 0
cal = calendar.Calendar()

for week in cal.monthdayscalendar(2013, 8):
for i, day in enumerate(week):
    # not this month's day or a weekend
    if day == 0 or i >= 5:
        continue
    # or some other control if desired...
    weekday_count += 1

print(weekday_count)

1 个答案:

答案 0 :(得分:0)

您可能希望将此作为起点。它将计算您选择的日,月,年的剩余星期一数。

from datetime import datetime, timedelta


# Monday = 0
def get_remaining_mondays(year, month, day):
    count = 0
    try:
        d = datetime(year, month, day)
        wday = d.weekday()

        d += timedelta(days=7 - wday)
        while d.month == month:
            count += 1
            d += timedelta(days=7)
    except ValueError as v:
        return v

    return count


print(get_remaining_mondays(2017, 11, 7))