首页 > 代码库 > python中获取上一个月一号的方法
python中获取上一个月一号的方法
业务场景:
我们经常会跑一些月级别或者周级别的报表。
周级别的报表还比较好确定,就是七天前的直接用timedelta(days=7)来获取开始日期就可以了;
但是月级别的报表就要麻烦一些,因为timedelta这个函数没有month这个参数,那我们怎么来获取一个月前的一号呢,还要考虑到这个月有多少天,会不会跨年,之类的...
我今天想到了一个简单的办法,分享给大家
有了这个办法,就不用再去判断闰年那些很麻烦的逻辑了
如果大家发现这个算法有什么问题可以指出来,共同学习
1 from datetime import date 2 from datetime import timedelta 3 4 def get_last_month_first_day(date): 5 date_terminal = 26 + date.day 6 res_date = date - timedelta(days=date_terminal) 7 while 1: 8 if res_date.day == 1: 9 break10 else:11 res_date -= timedelta(days=1)12 return res_date13 14 15 if __name__ == ‘__main__‘:16 test_date_a = date(2016, 9,3)17 test_date_b = date(2016, 10, 1)18 test_date_c = date(2016, 2, 28)19 test_date_d = date(2016, 1, 1)20 print map(get_last_month_first_day, [21 test_date_a, test_date_b, test_date_c, test_date_d])
python中获取上一个月一号的方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。