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

(1)求当前月最后一天

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

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

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

 #!/usr/bin/python3
 #-*- coding: utf-8 -*-

 import datetime
 import calendar

 # 理论学习示例
 print('理论学习示例')

 time = datetime.date(2018, 12, 23) # 年,月,日

 print('year : ' + str(time.year) + ' month : ' + str(time.month))

 # 求当前月第一天
 first_day = datetime.date(time.year, time.month, 1)
 print ('当前月的第一天:' + str(first_day))

 # 求当前月的最后一天
 days_num = calendar.monthrange(first_day.year, first_day.month)[1]  # 获取当前月有多少天
 last_day_of_current_month = first_day + datetime.timedelta(days = days_num - 1)  # 当前月的最后一天只需要days_num - 1 即可
 print ('当前月最后一天:' + str(last_day_of_current_month))

 # 求前一个月最后一天
 pre_month = first_day - datetime.timedelta(days = 1) # timedelta是一个不错的函数
 print ('前一个月最后一天:' + str(pre_month))

 # 求前一个月的第一天
 first_day_of_pre_month = datetime.date(pre_month.year, pre_month.month, 1)
 print ('前一个月的第一天:' + str(first_day_of_pre_month))

 # 求下个月的第一天
 first_day_of_next_month = first_day + datetime.timedelta(days = days_num)
 print ('下个月的第一天:' + str(first_day_of_next_month))

 # 求下个月的最后一天
 next_month_days = calendar.monthrange(first_day_of_next_month.year, first_day_of_next_month.month)[1]  # 获取下个月有多少天
 next_month = first_day_of_next_month + datetime.timedelta(days = next_month_days - 1)
 print ('下个月最后一天:' + str(next_month))

 print('\n')
 # 应用实例

 print('应用实例')

 cycleid = "

 print('cycleid_year : ' + str(cycleid[0:4]) + ' cycleid_month : ' + str(cycleid[4:6]))

 month = int(cycleid[4:6])
 print("month : " + str(month))

 first_day_of_current_cycleid = datetime.date(int(cycleid[0:4]), int(cycleid[4:6]), 1)
 print("first_day : " + str(first_day_of_current_cycleid))

 def getNextCycleidFirstDay() :
     first_day_of_current_cycleid = datetime.date(int(cycleid[0:4]), int(cycleid[4:6]), 1)
     days_num = calendar.monthrange(first_day_of_current_cycleid.year, first_day_of_current_cycleid.month)[1]
     first_day_of_next_cycleid = first_day_of_current_cycleid + datetime.timedelta(days = days_num)
     return first_day_of_current_cycleid, first_day_of_next_cycleid

 current_fd, next_fd = getNextCycleidFirstDay()
 print("current_fd : " + str(current_fd) + " next_fd : " + str(next_fd))

 '''
 理论学习示例
 year : 2018 month : 12
 当前月的第一天:2018-12-01
 当前月最后一天:2018-12-31
 前一个月最后一天:2018-11-30
 前一个月的第一天:2018-11-01
 下个月的第一天:2019-01-01
 下个月最后一天:2019-01-31

 应用实例
 cycleid_year : 2019 cycleid_month : 12
 month : 12
 first_day : 2019-12-01
 current_fd : 2019-12-01 next_fd : 2020-01-01
 '''

Good Good Study, Day Day Up.

顺序 选择 循环 总结

python 求下个月的最后一天的更多相关文章

  1. 使用python求字符串或文件的MD5

    使用python求字符串或文件的MD5 五月 21st, 2008 #以下可在python3000运行. #字符串md5,用你的字符串代替'字符串'中的内容. import hashlib md5=h ...

  2. python求微分方程组的数值解曲线01

    本人最近在写一篇关于神经网络同步的文章,其一部分模型为: x_i^{\Delta}(t)= -a_i*x_i(t)+ b_i* f(x_i(t))+ \sum\limits_{j \in\{i-1, ...

  3. Python 求点到直线的垂足

    Python 求点到直线的垂足 在已知一个点,和一条已知两个点的直线的情况下 运算公式参考链接:https://www.cnblogs.com/mazhenyu/p/3508735.html def ...

  4. python求100以内素数

    python求100以内素数之和 from math import sqrt # 使用isPrime函数 def isPrime(n): if n <= 1: return False for ...

  5. Python 求两个文本文件以行为单位的交集 并集 差集

    Python 求两个文本文件以行为单位的交集 并集 差集,来代码: s1 = set(open('a.txt','r').readlines()) s2 = set(open('b.txt','r') ...

  6. python求极值点(波峰波谷)

    python求极值点主要用到scipy库. 1. 首先可先选择一个函数或者拟合一个函数,这里选择拟合数据:np.polyfit import pandas as pd import matplotli ...

  7. Python求一个数字列表的元素总和

    Python求一个数字列表的元素总和.练手: 第一种方法,直接sum(list): 1 lst = list(range(1,11)) #创建一个1-10的数字列表 2 total = 0 #初始化总 ...

  8. python 求MD5值

    (一)求字符串的MD5值 import hashlib #导入功能模块,此模块有MD5,SHA1,SHA256等方法 m = hashlib.md5() #声明一个对象 m.update(b'hell ...

  9. python求线性回归斜率

    一. 先说我对这个题目的理解 直线的x,y方程是这样的:y = kx+b, k就是斜率. 求线性回归斜率, 就是说 有这么一组(x, y)的对应值——样本.如果有四组,就说样本量是4.根据这些样本,做 ...

随机推荐

  1. Creating and Flashing UBIFS with MTD Utils

    转:http://wiki.atlas-embedded.com/index.php?title=Creating_and_Flashing_UBIFS_with_MTD_Utils Contents ...

  2. cocurrent包ExecutorService线程池

    16. 执行器服务 ExecutorService java.util.concurrent.ExecutorService 接口表示一个异步执行机制,使我们能够在后台执行任务.因此一个 Execut ...

  3. 【mybatis】mybatis中 的# 和 $的区别

    mybatis中 的# 和 $的区别 参考地址:https://www.cnblogs.com/sxdcgaq8080/p/10869144.html

  4. Object 类中的 equals方法

    1 相等与同一 如果两个对象具有相同的类型以及相同的属性值,则称这两个对象相等.如果两个引用对象指的是同一个对像,则称这两个变量同一.Object类中定义的equals 函数原型为:public bo ...

  5. 一个java调用python的问题

    使用 ProcessBuilder List<String> commands = new ArrayList(); commands.add("python"); c ...

  6. 转:Eclipse自动补全功能轻松设置

    Eclipse自动补全功能轻松设置 || 不需要修改编辑任何文件 2012-03-08 21:29:02|  分类: Java |  标签:eclipse  自动补全  设置  |举报|字号 订阅   ...

  7. redis学习笔记——内存映射数据结构

    内存映射数据结构 解决问题:当一个对象包含的元素数量并不多,或者元素本身的体积并不大时,使用代价高昂的内部数据结构并不是最好的办法. 内存映射数据结构是一系列经过特殊编码的字节序列,创建它们所消耗的内 ...

  8. 如何Tomcat注册成系统服务

    1.开始->运行(windos+r)中敲cmd,DOS界面2.cd到tomcat的bin目录下3.运行命令service.bat install      这里可以指定注册服务的名字,然后就可以 ...

  9. HTML图片热区

    文章来源于:https://www.cnblogs.com/mq0036/p/3337327.html <!DOCTYPE html> <html lang="en&quo ...

  10. 解决ie7下overflow:hidden失效问题

    但父亲元素下面的子节点或者孙子节点有position:relative:或者absolute时,父亲即使设置了overflow:hidden:依然会溢出 解决方法可以: 在父亲元素上加上*positi ...