在CRM开发过程中,需要对当前时间范围的数据,同比去年,环比上月,做一个对比,其实不难,主要是在时间日期上,对润年的2月要特殊处理,实现方案如,仅供参考。
效果图:
代码参考,具体按自己要求修改一下就可以了。
str1 = "2024-02-01" str2 = "2024-02-29" f = int(str2[0:4])-1 print("当前年份") print(f) g = int(str2[5:7]) print("当前月份") print(g) #print(str(int(str1[0:4]) - 1) + str1[4:]) # 同比去年开始时间 #print(str(int(str2[0:4]) - 1) + str2[4:]) # 同比去年结束时间 if (f % 4 == 0 and f % 100 != 0) or (f % 400 == 0): if (g == 2): print("情形1:当前是润年的2月要特殊处理!") print("润年的二月,特殊显示,请把它设置为29天") print(str(int(str1[0:4]) - 1) + str1[4:]) # 同比去年开始时间 print(str(int(str2[0:4]) - 1) + "-" + str2[5:7] + "-" + "29") else: print("情形2:当前是润年,但不是2月") print(str(int(str1[0:4]) - 1) + str1[4:]) # 同比去年开始时间 print(str(int(str2[0:4]) - 1) + str2[4:]) # 同比去年结束时间 else: if (g == 2): print("情形3:不是润年,但是当前是2月,要把天数设置为28天") print(str(int(str1[0:4]) - 1) + str1[4:]) # 同比去年开始时间 print(str(int(str2[0:4]) - 1) + "-" + str2[5:7] + "-" + "28") else: print("情形4:当前不是润年,也不是2月") print(str(int(str1[0:4]) - 1) + str1[4:]) # 同比去年开始时间 print(str(int(str2[0:4]) - 1) + str2[4:]) # 同比去年结束时间 print("===========================================华丽的分割线===========================================") #30天的月份 list30 = [4,6,8,9,11] #31天的月份 list31 = [5,7,10,12] #获取月份,如果是1月: a = str1[5:7] print(a) b = int(a) c = str1[0:4] print(c) d = int(c) if b == 1: print("当前是一月,年要减少一位") print(str(int(str1[0:4]) - 1) + "-12-01") # 环比上月开始时间 print(str(int(str1[0:4]) - 1) + "-12-31") # 环比上月结束时间 elif b == 2: print("当前是2月,最大设置为28天,有BUG") print(str1[0:6] + str(int(str1[6]) - 1) + str1[7:]) # 环比上月开始时间 print(str2[0:6] + str(int(str1[6]) - 1) + "-31") # 环比上月结束时间 elif b == 3: if (d % 4 == 0 and d % 100 != 0) or (d % 400 == 0): e = "-29" print("当前是润年,上月最大设置为29天") print(str1[0:6] + str(int(str1[6]) - 1) + str1[7:]) print(str2[0:6] + str(int(str1[6]) - 1) + str(e)) else: e = "-28" print("今年是普通的2月,只有28天") print(str1[0:6] + str(int(str1[6]) - 1) + str1[7:]) print(str2[0:6] + str(int(str1[6]) - 1) + str(e)) elif b in list30: print("当前是30天的月份") print(str1[0:6] + str(int(str1[6]) - 1) + str1[7:]) # 环比上月开始时间 print(str2[0:6] + str(int(str1[6]) - 1) + "-31") # 环比上月结束时间 elif b in list31: print("当前是31天的月份") print(str1[0:6] + str(int(str1[6]) - 1) + str1[7:]) # 环比上月开始时间 print(str2[0:6] + str(int(str1[6]) - 1) + "-30") # 环比上月结束时间 else: pass
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)