python 求下个月的最后一天

2019/05/14 10:19
阅读数 223

【1】根据当前月求上个月、下个月的最后一天

(1)求当前月最后一天

(2)求前一个月的最后一天

(3)求下一个月的最后一天

学习示例与应用实例,代码如下:

 1 #!/usr/bin/python3
 2 #-*- coding: utf-8 -*-
 3 
 4 import datetime
 5 import calendar
 6 
 7 # 理论学习示例
 8 print('理论学习示例')
 9 
10 time = datetime.date(2018, 12, 23) # 年,月,日
11 
12 print('year : ' + str(time.year) + ' month : ' + str(time.month))
13 
14 # 求当前月第一天
15 first_day = datetime.date(time.year, time.month, 1)
16 print ('当前月的第一天:' + str(first_day))
17 
18 # 求当前月的最后一天
19 days_num = calendar.monthrange(first_day.year, first_day.month)[1]  # 获取当前月有多少天
20 last_day_of_current_month = first_day + datetime.timedelta(days = days_num - 1)  # 当前月的最后一天只需要days_num - 1 即可
21 print ('当前月最后一天:' + str(last_day_of_current_month))
22 
23 # 求前一个月最后一天
24 pre_month = first_day - datetime.timedelta(days = 1) # timedelta是一个不错的函数
25 print ('前一个月最后一天:' + str(pre_month))
26 
27 # 求前一个月的第一天
28 first_day_of_pre_month = datetime.date(pre_month.year, pre_month.month, 1)
29 print ('前一个月的第一天:' + str(first_day_of_pre_month))
30 
31 # 求下个月的第一天
32 first_day_of_next_month = first_day + datetime.timedelta(days = days_num)
33 print ('下个月的第一天:' + str(first_day_of_next_month))
34 
35 # 求下个月的最后一天
36 next_month_days = calendar.monthrange(first_day_of_next_month.year, first_day_of_next_month.month)[1]  # 获取下个月有多少天
37 next_month = first_day_of_next_month + datetime.timedelta(days = next_month_days - 1)
38 print ('下个月最后一天:' + str(next_month))
39 
40 print('\n')
41 # 应用实例
42 
43 print('应用实例')
44 
45 cycleid = "201912"
46 
47 print('cycleid_year : ' + str(cycleid[0:4]) + ' cycleid_month : ' + str(cycleid[4:6]))
48 
49 month = int(cycleid[4:6])
50 print("month : " + str(month))
51 
52 first_day_of_current_cycleid = datetime.date(int(cycleid[0:4]), int(cycleid[4:6]), 1)
53 print("first_day : " + str(first_day_of_current_cycleid))
54 
55 def getNextCycleidFirstDay() :
56     first_day_of_current_cycleid = datetime.date(int(cycleid[0:4]), int(cycleid[4:6]), 1)
57     days_num = calendar.monthrange(first_day_of_current_cycleid.year, first_day_of_current_cycleid.month)[1]
58     first_day_of_next_cycleid = first_day_of_current_cycleid + datetime.timedelta(days = days_num)
59     return first_day_of_current_cycleid, first_day_of_next_cycleid
60 
61 current_fd, next_fd = getNextCycleidFirstDay()
62 print("current_fd : " + str(current_fd) + " next_fd : " + str(next_fd))
63 
64 '''
65 理论学习示例
66 year : 2018 month : 12
67 当前月的第一天:2018-12-01
68 当前月最后一天:2018-12-31
69 前一个月最后一天:2018-11-30
70 前一个月的第一天:2018-11-01
71 下个月的第一天:2019-01-01
72 下个月最后一天:2019-01-31
73 
74 
75 应用实例
76 cycleid_year : 2019 cycleid_month : 12
77 month : 12
78 first_day : 2019-12-01
79 current_fd : 2019-12-01 next_fd : 2020-01-01
80 '''


Good Good Study, Day Day Up.

顺序 选择 循环 总结

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部