首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

给定日期范围(开始日期和结束日期),我如何计算天数,不包括.Net中指定的星期几?

您好,您需要一个程序来计算两个日期之间的天数,但不包括指定的星期几。以下是一个使用Python编写的程序,它可以实现您的需求:

代码语言:python
复制
from datetime import datetime, timedelta

def count_days_exclude_weekdays(start_date, end_date, exclude_weekdays):
    start_date = datetime.strptime(start_date, "%Y-%m-%d")
    end_date = datetime.strptime(end_date, "%Y-%m-%d")

    days = (end_date - start_date).days + 1
    for i in range(days):
        current_date = start_date + timedelta(i)
        if current_date.weekday() in exclude_weekdays:
            days -= 1
    return days

start_date = "2022-01-01"
end_date = "2022-01-31"
exclude_weekdays = [0, 1, 2, 3, 4]  # 0表示星期一,1表示星期二,以此类推

days = count_days_exclude_weekdays(start_date, end_date, exclude_weekdays)
print(f"在{start_date}和{end_date}之间,不包括{exclude_weekdays}的天数为:{days}")

在这个程序中,我们首先将输入的日期字符串转换为Python的datetime对象。然后,我们计算两个日期之间的天数,并将其存储在变量days中。接下来,我们遍历每一天,检查它是否在要排除的星期几中。如果是,则将days减1。最后,我们返回days作为结果。

您可以根据需要修改start_dateend_dateexclude_weekdays变量来测试不同的日期范围和要排除的星期几。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python date,datetime,time等相关操作总结

__author__ = '授客' import time from datetime import date from datetime import timedelta from datetime import datetime #####date##### # 获取当前本地日期(date对象) # 方法1 today = date.fromtimestamp(time.time()) print('方法1:当前本地日期(date对象)\n类型:', type(today), 'value:', today) # 方法2 today = date.today() print('方法2:当前本地日期(date对象)\n类型:', type(today), 'value:', today) # 获取本地当前日期(字符串,即转date对象为对应字符串) today_str = today.strftime('%Y-%m-%d') print('当前本地日期(字符串)\n类型:', type(today_str), 'value:', today_str) today_str = today.ctime() print('当前本地日期(字符串)\n类型:', 'value:',today_str) # 转换本地当前日期为时间戳(秒) second_for_today = int(time.mktime(today.timetuple())) print('当前本地日期对应的时间戳(秒):', second_for_today) # 转换本地当前日期为时间戳(毫秒) millisecond_for_today = int(time.mktime(today.timetuple())*1000) print('当前本地日期对应的时间戳(毫秒):', millisecond_for_today) # 获取本地昨日日期 yesterday = today - timedelta(days=1) print('昨日本地日期(date对象)\n类型:', type(yesterday), 'value:', yesterday) # 获取本地当前日期对应的星期 weekday = today.weekday() print('当前本地日期对应的星期:', weekday) #0~6 ->周一到周日 # 时间戳(秒)转换为date对象 mydate = date.fromtimestamp(1512144000) print('时间戳(秒)转换为date对象:', type(mydate), mydate) print('\n\n') #####datetime##### # 获取本地当前日期时间(datetime对象) # 方法1: date_time = datetime.today() print('方法1:当前本地日期时间(datetime对象)\n类型:', type(date_time), 'value:', date_time) # 方法2: date_time = datetime.now() print('方法2:当前本地日期时间(datetime对象)\n类型:', type(date_time), 'value:', date_time) # 获取本地当前日期时间(字符串,即转datetime对象为对应字符串) date_time_str = date_time.strftime('%Y-%m-%d %H:%M:%S') print('当前本地日期时间(字符串)类型:', 'value:', date_time_str) # 获取本地昨日当前时间(datetime对象) yesterday_date_time = date_time - timedelta(days=1) print('方法2:昨日本地当前时间(datetime对象)\n类型:', type(yesterday_date_time), 'value:', yesterday_date_time) # 转换本地当前日期时间为时间戳(秒) millisecond_for_date_time = int(time.mktime(date_time.timetuple())) print('当前本地日期时间对应的时间戳(秒):', millisecond_for_date_time) # 获取本地日期对应的星期 weekday = date_time.weekday() print('当前本地日期时间对应的星期:', weekday) #0~

02
领券