Python利用time与datetime模块生成当月工作日列表的方法

远山来客
远山来客
发布时间:2026-10-13 | 6人浏览过
原创

本文介绍在Python中通过time和datetime模块获取当月所有工作日(排除周六周日)的实现方法。代码包含两种实现逻辑,分别处理日期越界及周末运行时的特殊添加逻辑,适用于自动化工具如日报填写场景。

Python获取当月工作日列表背景与需求

近期在开发Python编写的自动日报填写工具时,因接口请求需携带特定时间格式(例如:2016-08-04),故深入研究并整理了Python中处理时间与日期的相关函数,在此进行简要记录。

该函数的核心功能在于提取当月所有的工作日数据,自动剔除周六和周日。此外,若脚本执行时间落在周六或周日,逻辑中会额外将当天日期加入结果列表中。

基于time与datetime模块的代码实现


#获取填写日报的日期,规则:把当月所有的工作日时间全部返回
  def getDateByTime(self):
    self.myDate=[]
    t = str(time.strftime('%Y-%m-'))
    for i in range(1,32):
      timeStr=t+str(i)
      try:
        #字符串转换为规定格式的时间
        tmp = time.strptime(timeStr,'%Y-%m-%d')
        #判断是否为周六、周日
        if (tmp.tm_wday !=6) and (tmp.tm_wday!=5):
          self.myDate.append(time.strftime('%Y-%m-%d',tmp))
      except:
        print('日期越界')
    if len(self.myDate)==0:
      self.myDate.append(time.strftime('%Y-%m-%d'))
    return self.myDate

  def getDateByDateTime(self):
    self.myDate=[]
    now = datetime.datetime.now()
    tmp = now.strftime('%Y-%m-')
    #通过calendar获取到当月第一天的weekday,以及当月天数
    t = calendar.monthrange(now.year, now.month)
    for i in range(1,t[1]):
      dateTmp = tmp+str(i)
      myDateTmp = datetime.datetime.strptime(dateTmp,'%Y-%m-%d')
      if myDateTmp.isoweekday() !=6 and myDateTmp.isoweekday() !=7:
        self.myDate.append(myDateTmp.strftime('%Y-%m-%d'))
    if len(self.myDate)==0:
      self.myDate.append(now.strftime('%Y-%m-%d'))
    return self.myDate

以上为Python使用time和datetime模块返回工作日列表的完整实现细节,希望能为读者提供实用参考。如有任何疑问,欢迎留言交流,小编将及时回复。感谢对本站的支持。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表