对比Excel,怎么用Python获取指定时间最后一天的日期

简介: 对比Excel,怎么用Python获取指定时间最后一天的日期

这是群友的一个需求。他想根据一个给定的日期,获取该给定日期在这个年月的最后一天的日期,并且要求在Python中怎么做。基于此,我就想到了对比Excel,在Python中完成这个需求。

image.png


Excel完成这个需求

① 在单元格中输入EOMONTH()公式

image.png


② 完成填充操作

image.png


③ 将时间戳转换为短日期格式

可以看到在excel中输入该公式后,默认返回的是一个时间戳,我们需要将其转换为我我们需要的短日期格式。

image.png


Python完成这个需求

在完成这个需求之前,我们先来讲述几个知识点,否则你会看着懵逼。


1)datetime库中的知识点

import datetime
date1 = datetime.date.today()
print(date1)
year = datetime.date.today().year
print(year)`
month = datetime.date.today().month
print(month)


结果如下:

image.png

可以看出:上面我们使用today()函数直接获取了当前系统的年月,并且利用year和month属性分别获取了当前系统时间的年、月。


接下来,我们使用该模块获取指定年、月的指定日期,其中day=1表示获取当前年月的第一天,day=2表示获取当前年月的第二天…依次进行下去。


date1 = datetime.date(year=year, month=month, day=1)
print(date1)
date2 = datetime.date(year=year, month=month, day=2)
print(date2)


结果如下:

image.png

通过上述演示,应该可以知道怎么完成这个需求了吧?当我们指定了年月,后面只需要传入day=当月的总天数这个参数,得到的不就是该年月的最后一天的日期吗?因此目前的问题就是怎么获取某个月的最后一天,这就是下面需要讲述的monthrange()函数。


2)calendar库中的知识点

对于这个模块,我主要讲述一个monthrange()函数,这个函数是有什么用呢?


monthrange(year, month):返回指定年月,由第一天所在的星期和本月的总天数组成的元组。
# 这里的year和month就是上面提到的2020和7
import calendar
x, y = calendar.monthrange(year, month)
print(x, y)
"""
其中:x表示2020/7/1号所在的星期数,其中周一是0,周二是1,周三是2。
     y表示的是2020年7月这个月的总天数。
"""


结果如下:

image.png


3)完整代码如下

import datetime
import calendar
def func(year=None, month=None):
    if year:
        year = int(year)
    else:
        year = datetime.date.today().year
    if month:
        month = int(month)
    else:
        month = datetime.date.today().month
    # x:表示当月第一天所属的星期
    # y:表示当月的总天数
    x, y = calendar.monthrange(year, month)
    # 获取当月的第一天和最后一天
    first_day = datetime.date(year=year, month=month, day=1)
    last_day = datetime.date(year=year, month=month, day=y)
    return first_day, last_day
first_day, last_day = func()
print(first_day, last_day)
first_day, last_day = func(2020,6)
print(first_day, last_day)


结果如下:


image.png

相关文章
|
2月前
|
Python
Datetime模块应用:Python计算上周周几对应的日期
Datetime模块应用:Python计算上周周几对应的日期
|
2月前
|
Python
Python编程获取当前日期的所属周日期信息
Python编程获取当前日期的所属周日期信息
|
20天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
63 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
2月前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
52 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
2月前
|
Python
python读写操作excel日志
主要是读写操作,创建表格
64 2
|
2月前
|
Python
Python 自动化操作 Excel - 02 - xlwt
Python 自动化操作 Excel - 02 - xlwt
40 14
|
2月前
|
Python
Python 自动化操作 Excel - 03 - xlutils
Python 自动化操作 Excel - 03 - xlutils
36 13
|
2月前
|
数据处理 Python
Python 高级技巧:深入解析读取 Excel 文件的多种方法
在数据分析中,从 Excel 文件读取数据是常见需求。本文介绍了使用 Python 的三个库:`pandas`、`openpyxl` 和 `xlrd` 来高效处理 Excel 文件的方法。`pandas` 提供了简洁的接口,而 `openpyxl` 和 `xlrd` 则针对不同版本的 Excel 文件格式提供了详细的数据读取和处理功能。此外,还介绍了如何处理复杂格式(如合并单元格)和进行性能优化(如分块读取)。通过这些技巧,可以轻松应对各种 Excel 数据处理任务。
210 16
|
2月前
|
Python
Python 自动化操作 Excel - 01 - xlrd
Python 自动化操作 Excel - 01 - xlrd
36 9
|
2月前
|
数据挖掘 iOS开发 MacOS
利用Python计算农历日期
利用Python计算农历日期