是群友的需求。他想根据给定的日期得到今年和本月的最后一天的日期,请教如何用Python实现。基于此,我想到了对比Excel,用Python完成这个需求。Excel完成这个需求①在单元格中输入EOMONTH()公式②完成填充操作③将时间戳转换为短日期格式可以看到在excel中输入这个公式后默认返回的是时间戳,我们需要进行转换它将转换为我们需要的短日期格式。Python完成这个需求在完成这个需求之前,先说几个知识点,不然看得一头雾水。1)datetime库中的知识点importdatetimedate1=datetime.date.today()print(date1)year=datetime.date.today().yearprint(year)`month=datetime.date.today().monthprint(month)的结果如下:可以看出,上面我们使用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)结果如下:通过上面的演示,你应该可以知道如何完成这个需求了吧?我们在指定年月的时候,只需要传入参数day=该月的总天数,不就是年月最后一天的日期吗?所以现在的问题就是如何获取某月的最后一天,这就是下面需要说明的monthrange()函数。2)日历库中的知识点这个模块主要讲一个monthrange()函数。这个功能有什么用?该月总天数的元组。#这里的年月就是上面提到的2020和7importcalendarx,y=calendar.monthrange(year,month)print(x,y)"""其中:x表示2020/7/1的周数,其中周一是0,星期二为1,星期三为2。y代表2020年7月的总天数。"""结果如下:3)完整代码如下deffunc(year=None,month=None):ifear:year=int(year)else:year=datetime.date.today().yearifmonth:month=int(month)else:month=datetime.date.today().month#x:表示第一个星期dayofthemonth#y:表示该月的总天数x,y=calendar.monthrange(year,month)#获取该月的第一天和最后一天first_day=datetime.date(year=year,month=月,日=1)last_day=datetime.date(year=year,month=month,day=y)returnfirst_day,last_dayfirst_day,last_day=func()print(first_day,last_day)first_day,last_day=func(2020,6)打印(first_day,last_day)结果如下:这段代码其实很容易理解:如果year和month都为空,它返回当前系统时间的最后一天的日期。如果传入指定年月,则获取的日期为指定年月的最后一天。
