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

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

本文介绍在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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。