Python的weekday()一出手,星期几立马现原形
参与编程工作时, 处理日期以及时间属于一项常见且重要的任务, 不管是开展数据分析工作, 还是构建Web应用程序, 又或是开发自动化脚本, 我们时常都需要针对日常时间开展各种各样的操作。的的模块给我们提供了强大且灵活的工具用以处理这些任务, 当中()方法是一个极为实用的函数, 它能够助力我们轻松获取某个日期所对应的星期几。本文会深入探究()方法的运用情况, 并且通过丰富多样的示例来展现它的实际应用情况。()方法简介()属于.date以及.对象的一个方法, 它会返回一个整数, 此整数用于表明该日期究竟是星期几, 返回值的范围处于0到6之间, 其中:这一方法极为简单直白, 然而其应用场景却极为宽泛。我们借助一些实例去深入知晓它的运用办法以及技巧。基本用法首先,让我们看一个最基本的例子:from datetime import datetime # 创建一个datetime对象 date datetime(2023, 5, 1) # 获取星期几 weekday date.weekday() print(f2023年5月1日是星期{weekday})输出:2023年5月1日是星期0于这个例子里头, 我们构建了一个用以呈现2023年5月1日这一日期的对象, 接着运用()方法去获取与之相对应的是星期几, 输出的结果为0, 意味着这一日是星期一。将数字转换为星期名称尽管, 方法所返回的那数字极易被理解, 然而, 在实际的应用情形当中, 我们没准儿更期望去瞧见星期的名称。不妨可以创建一个映射以此来达成这一点哟:from datetime import datetime weekday_names [星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期日] date datetime(2023, 5, 1) weekday date.weekday() print(f2023年5月1日是{weekday_names[weekday]})输出:2023年5月1日是星期一这个办法更为直观, 尤其是在我们有必要于用户界面或者报告里呈现日期信息之际。使用模块获取本地化的星期名称要是咱们的应用有支持多语言的需求, 可行的办法是运用相关模块去获取处于当下语言环境里的星期名称咯。import locale from datetime import datetime # 设置语言环境为简体中文 locale.setlocale(locale.LC_TIME, zh_CN.UTF-8) date datetime(2023, 5, 1) weekday_name date.strftime(%A) print(f2023年5月1日是{weekday_name})输出:2023年5月1日是星期一此种方法具备的优点为可自行适应各异的语言环境, 并不需要依靠手动去维护星期名称的列表。计算两个日期之间的工作日数量方法, 在开展日期计算的期间, 是极为有用的喔。举例来讲, 对于计算两个日期之间的工作日数目这件事儿, 我们能够使用它来达成 的。from datetime import datetime, timedelta def count_workdays(start_date, end_date): current_date start_date workdays 0 while current_date end_date: if current_date.weekday() 5: # 0-4 表示周一到周五 workdays 1 current_date timedelta(days1) return workdays start datetime(2023, 5, 1) end datetime(2023, 5, 31) workdays count_workdays(start, end) print(f2023年5月共有 {workdays} 个工作日)输出:2023年5月共有 23 个工作日这个函数, 会对两个日期之间的每一天展开遍历, 借助()方法去判断是不是工作日, 也就是周一至周五, 进而计算出工作日的总数。查找下一个特定星期几另有用于查找下一个特定星期几的实用应用, 比如说, 我们或许需要找出自今日起的下一个星期五。from datetime import datetime, timedelta def next_weekday(date, weekday): days_ahead weekday - date.weekday() if days_ahead 0: # 目标星期几已经过了,等待下一周 days_ahead 7 return date timedelta(daysdays_ahead) today datetime.now() next_friday next_weekday(today, 4) # 4 表示星期五 print(f下一个星期五是 {next_friday.strftime(%Y-%m-%d)})此函数进行了计算, 是关于给定日期直至目标为星期几的天数计算, 若目标星期几已然过去, 那么便加上7天进行等待, 以等待下一周的到来。生成日历我们还可以利用()方法来生成简单的日历:import calendar from datetime import datetime def print_month_calendar(year, month): # 获取指定年月的第一天 first_day datetime(year, month, 1) # 获取该月的天数 _, last_day calendar.monthrange(year, month) print(f{year}年{month}月.center(20)) print(一 二 三 四 五 六 日) # 打印第一行的空白 print(l09.ulfvw.cN * first_day.weekday(), end) for day in range(1, last_day 1): print(f{day:2d} , end) if (first_day.weekday() day) % 7 0: print() # 换行 print() print_month_calendar(2023, 5)输出:2023年5月 一 二 三 四 五 六 日 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31该函数运用()方式去判定每月首日是星期几, 借此精准地打印出日历的样式。处理时区对不同时区日期予以处理之际, 方法亦能够正常发挥作用。我们能够运用pytz库去处理时区:from datetime import datetime import pytz # 创建一个带时区的datetime对象 utc_time datetime.now(pytz.UTC) print(fUTC时间: {utc_time}, 星期{utc_time.weekday()}) # 转换到北京时间 beijing_tz pytz.timezone(Asia/Shanghai) beijing_time utc_time.astimezone(beijing_tz) print(f北京时间: {beijing_time}, 星期{beijing_time.weekday()}) # 转换到纽约时间 ny_tz pytz.timezone(America/New_York) ny_time utc_time.astimezone(ny_tz) print(f纽约时间: {ny_time}, 星期{ny_time.weekday()})这个例子呈现了怎样于不同的时区之间去对时间进行转换, 并且运用方法来取得恰当的星期几。性能考虑遇到要处理大量日期数据的情况时, 方法在性能方面呈现出良好的表现。可是, 要是存在需要反复去计较同一天是星期几这种状况的话, 那么能够考虑把结果进行缓存处理:from datetime import datetime from functools import lru_cache lru_cache(maxsizeNone) def cached_weekday(year, month, day): return datetime(year, month, day).weekday() # 使用缓存的函数 print(cached_weekday(2023, 5, 1)) print(cached_weekday(2023, 5, 1)) # 第二次调用会从缓存中获取结果使用装饰器可以缓存函数的结果,避免重复计算,从而提高性能。与其他日期时间操作的结合能够跟其他日期时间操作一块儿施行, 达成更为繁杂功能的方法, 举例来说, 我们能够构建一个函数用以找寻给定月份里的全部星期一。from datetime import datetime, timedelta def find_mondays(year, month): start_date datetime(year, month, 1) end_date (start_date.replace(monthstart_date.month % 12 1, day1) - timedelta(days1)) if start_date.month 12 else datetime(year 1, 1, 1) - timedelta(days1) current_date start_date mondays [] while current_date end_date: if current_date.weekday() 0: # 0 表示星期一 mondays.append(current_date.date()) current_date timedelta(days1) return mondays mondays find_mondays(2023, 5) for monday in mondays: print(monday)这个函数,能够找出, 指定月份之中的, 所有星期一, 可被用于, 诸如安排定期会议, 或者生成报告之类的, 场景。实际应用案例不妨让我们去瞧一瞧一个更为贴合实际情况的应用实例。假定我们此刻正在着手开展一个较为简易的项目管理系统的开发工作, 这项工作要求计算出该项目的截止日期, 而且还要保证这个截止日期不会处于周末的时间范围内。from datetime import datetime, timedelta def calculate_deadline(start_date, duration_days): current_date start_date working_days 0 while working_days duration_days: current_date timedelta(days1) if current_date.weekday() 5: # 工作日 working_days 1 # 如果截止日期落在周末,顺延到下一个工作日 while current_date.weekday() 5: current_date timedelta(days1) return current_date project_start datetime(2023, 5, 1) project_duration 10 # 工作日 deadline calculate_deadline(project_start, project_duration) print(f项目开始日期: {project_start.date()}) print(f项目工期: {project_duration} 个工作日) print(f项目截止日期: {deadline.date()})这个函数对周末予以了考虑, 从而确保项目的截止日期始终是落在工作日之上, 这于实际的项目管理当中是极为有用的, 能够助力项目经理更为精准地去规划时间线。结论的模块里的()方法, 是 一个简单且强大的工具,该工具能够使 我们轻松地去处理 跟星期几有关的 各类日期时间操作。从 基本的日期信息获取开始, 一直到 复杂的日程安排范围,此()方法都 能够发挥重要作用。在这篇文章里头, 我们探究了办法的基础运用方式, 以及怎样把它跟别的功能联合起来运用去处理实际存在的问题。我们瞧见了它于日历生成这方面的运用, 在工作日计算这儿的运用, 以及跨时区操作等层面的运用。借由这些例子, 我们不但学会了怎样运用办法, 还知晓了怎样把它融合到更大范围的日期时间处理架构当中。对于身为开发者的人而言, 去掌握模块以及其方法, 这对于处理和时间相关的任务来讲, 是具有至关重要的意义的。那个方法尽管规模小, 然而它却是用以构建复杂的时间处理所涉逻辑的关键基石。希望此番在本文章里头的讨论, 以及所给出的示例, 能够对您起到帮助, 让您于实际项目之中能够更优良地运用这个方法, 达成提高日期时间处理方面的效率以及准确性的目的。于未来开展开发工作时, 要记得时常去回顾以及实践这些概念。伴随你经验的不断积累, 你将会发觉更多具备创新性的方式用以运用方法, 去解决各类与日期时间相关联的挑战。持续进行探索, 不间断地学习, 让其强大功能在你的项目里发挥出最大的效用。

相关新闻

清华PPT模板怎么用:3 分钟把清华紫母版套进文稿,Markdown 也能一键出片

清华PPT模板怎么用:3 分钟把清华紫母版套进文稿,Markdown 也能一键出片

清华PPT模板怎么用:3 分钟把清华紫母版套进文稿,Markdown 也能一键出片 【免费下载链接】THU-PPT-Theme 清华主题PPT模板 项目地址: https://gitcode.com/gh_mirrors/th/THU-PPT-Theme 答辩前一晚最磨人的往往不是内容,而是排版&#…

2026/8/22 17:26:00 阅读更多 →
用 RHVoice 把文字变成自然语音:给中文用户的免费语音合成指南

用 RHVoice 把文字变成自然语音:给中文用户的免费语音合成指南

用 RHVoice 把文字变成自然语音:给中文用户的免费语音合成指南 【免费下载链接】RHVoice a free and open source speech synthesizer for Russian and other languages 项目地址: https://gitcode.com/gh_mirrors/rh/RHVoice RHVoice 是一个免费开源的语音合…

2026/8/22 17:26:00 阅读更多 →
大厂Java面试全解析:Spring Boot与微服务架构实战

大厂Java面试全解析:Spring Boot与微服务架构实战

1. 面试场景还原:大厂Java技术栈的典型考察路径互联网大厂Java技术面试通常采用三轮渐进式考察机制,每一轮都有明确的侧重点。第一轮基础面会聚焦Spring Boot核心机制和JVM原理,面试官往往从"创建一个Spring Boot项目需要哪些步骤"…

2026/8/22 17:26:00 阅读更多 →

最新新闻

AI代码智能体如何赋能企业级规范驱动开发

AI代码智能体如何赋能企业级规范驱动开发

1. 从“即兴发挥”到“规矩方圆”:企业级开发的范式之变 如果你在软件行业摸爬滚打超过五年,大概率经历过这样的场景:项目初期,大家热情高涨,代码写得飞快,功能模块一个个堆叠起来。但随着项目进入中期&…

2026/8/22 18:06:09 阅读更多 →
调制方式如何影响通信系统有效容量

调制方式如何影响通信系统有效容量

1. 为什么信道容量不能只看“带宽够不够”——从QPSK到16QAM的调制阶数博弈信道容量不是个玄学概念,它本质上是通信系统在给定信噪比下能稳定传输信息的物理天花板。很多人一上来就盯着香农公式C B log₂(1 SNR)猛算,以为只要带宽B和信噪比SNR确定了&a…

2026/8/22 18:06:09 阅读更多 →
AI智能体工具调用安全治理:基于Logit的内核级控制原理与实践

AI智能体工具调用安全治理:基于Logit的内核级控制原理与实践

1. 从“失控”到“可控”:为什么AI智能体需要内核级工具治理最近和几个做AI智能体(Agent)落地的朋友聊天,大家不约而同地提到了同一个痛点:“这玩意儿好用是好用,但用起来心里有点发毛。”这种感觉&#xf…

2026/8/22 18:06:09 阅读更多 →
智能体记忆系统设计:从形式化定义到工程实践

智能体记忆系统设计:从形式化定义到工程实践

1. 项目概述:为什么我们需要形式化定义智能体记忆? 在构建和优化各类智能体(Agent)时,无论是游戏中的NPC、自动化流程机器人,还是大型语言模型驱动的复杂助手,“记忆”始终是一个核心且棘手的问…

2026/8/22 18:06:09 阅读更多 →
html-pdf-chrome HTML 转 PDF 实战:3 步搞定生产级转换

html-pdf-chrome HTML 转 PDF 实战:3 步搞定生产级转换

html-pdf-chrome HTML 转 PDF 实战:3 步搞定生产级转换 【免费下载链接】html-pdf-chrome HTML to PDF or image (jpeg, png, webp) converter via Chrome/Chromium 项目地址: https://gitcode.com/gh_mirrors/ht/html-pdf-chrome html-pdf-chrome 是一个基于…

2026/8/22 18:06:09 阅读更多 →
小样本多类型医疗数据的机器学习建模实战

小样本多类型医疗数据的机器学习建模实战

1. 项目概述:为什么一个脑出血患者的院前指标,值得用五种机器学习模型反复“较劲”?我带过三届数学建模国赛和亚太杯的参赛队,也帮临床科室做过真实病历数据的建模支持。去年接手一个急诊科合作项目时,主任递给我一份E…

2026/8/22 18:05:09 阅读更多 →

日新闻

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

在电子硬件开发领域,PCB(印制电路板)的沉金工艺是提升产品可靠性和焊接质量的关键环节。对于需要高密度互连、长期稳定运行或高频信号传输的板卡,如“黍姐仿通行证”这类可能涉及身份识别、数据交互的硬件项目,选择正确…

2026/8/22 0:00:11 阅读更多 →
电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

这次我们来看一个针对电气考研电路科目的学习规划项目。它不是软件工具,而是一套聚焦于8月份关键节点的备考策略。对于电气工程考研的同学来说,电路分析是专业课的重中之重,也是拉开分差的关键。进入8月,复习进入强化阶段&#xf…

2026/8/22 0:00:11 阅读更多 →
消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

大家好,我是专注于前端开发与AI工具实践的技术博主。在日常使用 Claude Code 等AI编程助手时,你是否也遇到过这样的困扰:生成的代码功能上没问题,但代码风格、组件设计、交互逻辑总透着一股“AI味”——布局单调、样式简陋、交互生…

2026/8/22 0:00:11 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/22 8:09:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/21 16:42:28 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/22 7:31:03 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →