使用Python的datetime模块及其timedelta方法计算月初,月末,上月初,上月末,下月初,下月末

本文主要是介绍使用Python的datetime模块及其timedelta方法计算月初,月末,上月初,上月末,下月初,下月末,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Python的datetime模块可以计算月初、月末、上月初、上月末、下月初和下月末的日期, 而日期间的变化是通过timedelta模块完成的


月初

将day参数设置为1就可以

from datetime import datetime, timedelta
today              = datetime.now() # 获取当前日期
year, month 	   = today.year, today.month # 获取当前年和月
first_day_of_month = datetime(year, month, 1) # 创建一个表示当前月份第一天的datetime对象
print(f"月初日期: {first_day_of_month}")

月末

将月份加1,然后设置日为1,再减去一天,这样就得到了当前月的最后一天

next_month		  = month + 1 if month < 12 else 1	# 12月的下一个月是1月
delta_year 		  = year if month < 12 else year + 1	# 12月的下一年要加1
end_of_next_month = datetime(delta_year, next_month, 1) # 将月份加1,设置日为1
last_day_of_month = end_of_next_month - timedelta(days=1) # 然后减去一天得到月末日期
print(f"月末日期: {last_day_of_month}")

这里要注意如果当前月份是12月, 下个月需要变成1月, 并且年份需要+1


上月初

获取当前月份的前一个月份,然后应用月初的计算方法

previous_month 			    = datetime(year, month, 1) - timedelta(days=1) # 获取上一个月
pre_year,pre_month			= previous_month.year,previous_month.month
first_day_of_previous_month = datetime(pre_year,pre_month,1) # 上月初就是上一个月的第一天
print(f"上月初日期: {first_day_of_previous_month}")

上月末

与月末计算方法一致, 当前月的第一天往前推算一天

previous_month = datetime(year, month, 1) - timedelta(days=1) # 上月末就是上一个月的最后一天
print(f"上月末日期: {previous_month}")

下月初

将月份加1

next_month		  		= month + 1 if month < 12 else 1	# 12月的下一个月是1月
delta_year 		  		= year if month < 12 else year + 1	# 12月的下一年要加1
first_day_of_next_month = datetime(delta_year, next_month, 1) # 将月份加1,设置日为1
print(f"下月初日期: {first_day_of_next_month}")

下月末

下下月初往前推算1天

# 获取下下个月的第一天
if month == 11:next_next_month = 1delta_year		= year + 1
elif month == 12:next_next_month = 2delta_year  	= year + 1
else:next_next_month = month + 2delta_year		= yearfirst_day_of_next_next_month = datetime(delta_year, next_next_month, 1)
last_day_of_next_month 		 = first_day_of_next_next_month - timedelta(days=1) # 下月末就是下下个月的第一天减去一天
print(f"下月末日期: {last_day_of_next_month}")

总结

  • 计算月初就是提取初对应的年月, 然后将day参数设置为1
  • 计算月末就是用下个月末往前减1天

请添加图片描述

这篇关于使用Python的datetime模块及其timedelta方法计算月初,月末,上月初,上月末,下月初,下月末的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/853168

相关文章

Spring @RequestMapping 注解及使用技巧详解

《Spring@RequestMapping注解及使用技巧详解》@RequestMapping是SpringMVC中定义请求映射规则的核心注解,用于将HTTP请求映射到Controller处理方法... 目录一、核心作用二、关键参数说明三、快捷组合注解四、动态路径参数(@PathVariable)五、匹配请

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

java String.join()方法实例详解

《javaString.join()方法实例详解》String.join()是Java提供的一个实用方法,用于将多个字符串按照指定的分隔符连接成一个字符串,这一方法是Java8中引入的,极大地简化了... 目录bVARxMJava String.join() 方法详解1. 方法定义2. 基本用法2.1 拼接

java连接opcua的常见问题及解决方法

《java连接opcua的常见问题及解决方法》本文将使用EclipseMilo作为示例库,演示如何在Java中使用匿名、用户名密码以及证书加密三种方式连接到OPCUA服务器,若需要使用其他SDK,原理... 目录一、前言二、准备工作三、匿名方式连接3.1 匿名方式简介3.2 示例代码四、用户名密码方式连接4

springboot项目中使用JOSN解析库的方法

《springboot项目中使用JOSN解析库的方法》JSON,全程是JavaScriptObjectNotation,是一种轻量级的数据交换格式,本文给大家介绍springboot项目中使用JOSN... 目录一、jsON解析简介二、Spring Boot项目中使用JSON解析1、pom.XML文件引入依

Java中的record使用详解

《Java中的record使用详解》record是Java14引入的一种新语法(在Java16中成为正式功能),用于定义不可变的数据类,这篇文章给大家介绍Java中的record相关知识,感兴趣的朋友... 目录1. 什么是 record?2. 基本语法3. record 的核心特性4. 使用场景5. 自定

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据