'''
日期工具
获取下一个工作日
1.今天周一,下一个工作日就是星期二
2.今天周五,下一个工作日就是下周一
3.遇到节假日,自动跳过;遇到补班,正确识别
'''
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
import urllib.request
import datetime
class DateUtil(object):
# 获取下一个工作日
def getNextWorkDay(self, workday):
# 输入时间转成datetime
dayTime = datetime.datetime.strptime(workday, "%Y-%m-%d")
# 获取下一天的datetime
nextDatetime = self.__getNextDay(dayTime)
# 下一天的datetime转时间字符串2019-01-01
nextDay = nextDatetime.strftime('%Y-%m-%d')
# 下一天如果是周末、节假日,继续延后一天
while self.__isWorkDay(nextDay) == False:
nextDatetime = self.__getNextDay(nextDatetime)
nextDay = nextDatetime.strftime('%Y-%m-%d')
print("%s 下一个工作日是 %s" % (workday, nextDay))
return nextDay
# 内部私有函数,获取下一天
def __getNextDay(self, day):
return day + datetime.timedelta(days = 1) # days = 1表示加1天
# 判断是否是工作日
def __isWorkDay(self, dayString):
# 给定一个日期,查询是否是节假日
serverUrl = "http://api.goseek.cn/Tools/holiday?date="
tmpString = dayString.replace("-", "") # 日期格式 20190101
urlRequest = urllib.request.Request(serverUrl + tmpString)
response = urllib.request.urlopen(urlRequest);
jsonData = json.loads(response.read()) # 解析json结果集
# api.goseek.cn提供获取制定日期的节假日信息,如下图所示
Python3获取下一个工作日(跳过周末和节假日)
Python工具:智能计算工作日与节假日
最新推荐文章于 2025-09-30 15:30:23 发布
&spm=1001.2101.3001.5002&articleId=104543962&d=1&t=3&u=48e696c37f0c4ecc9a6db495dee90142)
1984

被折叠的 条评论
为什么被折叠?



