#_*_coding:utf_*_
#!/usr/bin/env python now_day=input('当前某一天:').format('%Y.%m.%d')%%输入日期(年.月.日) year=int(now_day.split('.')[0])%%年月日用符号“.”分隔开,年放在第一个位置
month=int(now_day.split('.')[1])%%月放在第二个位置
day=int(now_day.split('.')[2])%%日放在第三个位置
print(year,month,day)%%输出使用者
a=[1,3,5,7,8,10]%%将月份中有三十一天的列入一个数组
b=[4,6,9,11]%%将月份中只有三十天的列入一个数组
if month in a:%%如果月份属于a中,则判断日是否为三十一,不是则日加一,是则月加一
if day == 31:
month =int(month) + 1
day=1
print('%04d-%02d-%02d' % (year, month, day))
else:
if day < 32:
day = int(day) + 1
print('%04d-%02d-%02d' % (year, month, day))
elif month in b:%%如果月份属于b中,则判断日是否为三十,不是则日加一,是则月加一
if day == 30:
month = int(month)+ 1
day=1
print('%04d-%02d-%02d' % (year, month, day))
else:
if day < 32:
day = int(day) + 1
print('%04d-%02d-%02d' % (year, month, day))
elif month == 12 and day == 31:%%月份为12,日为31,则年加一
year = int(year) + 1
month=1
day=1
print('%04d-%02d-%02d' % (year, month, day))
elif month == 12 and day<32:%%月份为12,日小于31,则日加一
day = int(day) + 1
print('%04d-%02d-%02d' % (year, month, day))
elif month>12 or day>31:%%输入日期,月份大于12,日大于31,则输入错误
print('error input')
elif (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0:%%判断年是否为闰年,针对2月份来做约束
if month == 2 and day == 29:
month = int(month) + 1
day = 1
print('%04d-%02d-%02d' % (year, month, day))
else:
if day <32:
day = int(day) + 1
print('%04d-%02d-%02d' % (year, month, day))
else:
if month == 2 and day == 28:
month = int(month) + 1
day = 1
print('%04d-%02d-%02d' % (year, month, day))
else:
if day <32:
day = int(day) + 1
print('%04d-%02d-%02d' % (year, month, day))

随机推荐

  1. Android Studio [WebView]

    WebViewActivity.java package com.xdw.a122; import android.graphics.Bitmap; import android.support.v7 ...

  2. SpringBoot -> @Import使用

    @Import 注解出自spring-context包中 package org.springframework.context.annotation; import java.lang.annota ...

  3. windows下tomcat启动日志乱码

    在windows下用startup.bat启动时,控制台里显示乱码,如图: 解决方案: 修改conf文件下的logging.properties文件,将控制台输出的编码修改为GBK: java.uti ...

  4. 序列标注(BiLSTM-CRF/Lattice LSTM)

    前言 在三大特征提取器中,我们已经接触了LSTM/CNN/Transormer三种特征提取器,这一节我们将介绍如何使用BiLSTM实现序列标注中的命名实体识别任务,以及Lattice-LSTM的模型原 ...

  5. 除了Web和Node,JavaScript还能做什么

    前言 提起JavaScript,我们也许经常会想到的是,可以用来写Web页面嘛,又或者,会想起Node.js 这个服务端环境,搞前后端同构. 那么,除此之外, JavaScript还可以做什么?   ...

  6. Spring Boot 2.X(二):集成 MyBatis 数据层开发

    MyBatis 简介 概述 MyBatis 是一款优秀的持久层框架,支持定制化 SQL.存储过程以及高级映射.它采用面向对象编程的方式对数据库进行 CRUD 的操作,使程序中对关系数据库的操作更方便简 ...

  7. Vue学习系列(一)——初识Vue.js核心

    前言 vue.js是一套构建用户界面的渐进式框架,vue.js的目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件. vue通过DOM事件操作和指令来进行视图层和模型层的相互通讯,会为每一 ...

  8. Spring入门(十五):使用Spring JDBC操作数据库

    在本系列的之前博客中,我们从没有讲解过操作数据库的方法,但是在实际的工作中,几乎所有的系统都离不开数据的持久化,所以掌握操作数据库的使用方法就非常重要. 在Spring中,操作数据库有很多种方法,我们 ...

  9. 虚拟机安装Centos7系统后优化操作

    重点说明 以下操作针对于VMware软件上新创建的Centos7的虚拟机的优化,当需要多台虚拟机的实验环境时,可通过以下需求先操作配置出一台优化机(也可称为模板机),并创建快照记录,以后的多台虚拟机环 ...

  10. C语言函数名以及取地址的区别和联系

    有时看到如下的代码: /*****************************/ #include <stdio.h> #include <string.h> #inclu ...