标签:#include

#include

#include

using namespace std;

bool checkNum(char c){

if(c >='0' && c <='9')

return true;

return false;

}

bool checkString(string str){

if(checkNum(str[0])&&checkNum(str[1])&&checkNum(str[2])

&&checkNum(str[3])&&(str[4]=='-')&&checkNum(str[5])

&&checkNum(str[6])&&(str[7]=='-')&&checkNum(str[8])&&checkNum(str[9]))

return true;

return false;

}

int main(){

string str;

int year;

int month;

int day;

while(cin>>str){

int flag = 1;

if(!checkString(str)){

flag=0;

cout<

}else{

year=(str[0]-'0')*1000+(str[1]-'0')*100+(str[2]-'0')*10+(str[3]-'0');

month=(str[5]-'0')*10+(str[6]-'0');

day=(str[8]-'0')*10+(str[9]-'0');

if(month==1 || month==3 || month==5 || month==7

|| month==8 || month==10 || month==12){

if(day >=1 && day <=31){

day += 2;

if(day > 31){

month += 1;

day = 1;

}

if(month > 12){

year += 1;

month = 1;

}

}else{

flag=0;

cout<

}

}

else if(month==4 || month==6 || month==9 || month==11){

if(day >=1 && day <=30){

day += 2;

if(day > 30){

month += 1;

day = 1;

}

if(month > 12){

year += 1;

month = 1;

}

}else{

flag=0;

cout<

}

}

else if(month == 2){

if((year%4==0 && year%100!=0) || (year%400==0)){

//如果为闰年

if(day >=1 && day <=29){

day += 2;

if(day > 29){

month += 1;

day = 1;

}

if(month > 12){

year += 1;

month = 1;

}

}else{

flag=0;

cout<

}

}

else{

if(day >=1 && day <=28){

day += 2;

if(day > 28){

month += 1;

day = 1;

}

if(month > 12){

year += 1;

month = 1;

}

}else{

flag=0;

cout<

}

}

}

else{

cout<

}

}

if(flag==1){

cout<

}

}

return 0;

}

import java.util.Scanner;

public class CalculateTheDayAfterTomorrow {

public static boolean checkNum(char c) {

// 判断当前字符是否为数字

if (c >= '0' && c <= '9')

return true;

return false;

}

public static boolean checkString(String str) {

// 判断字符串是否为指定的日期格式:yyyy-mm-dd

if (checkNum(str.charAt(0)) && checkNum(str.charAt(1))

&& checkNum(str.charAt(2)) && checkNum(str.charAt(3))

&& (str.charAt(4) == '-') && checkNum(str.charAt(5))

&& checkNum(str.charAt(6)) && (str.charAt(7) == '-')

&& checkNum(str.charAt(8)) && checkNum(str.charAt(9)))

return true;

return false;

}

public static void main(String args[]) {

String str;

int year = 0;

int month = 0;

int day = 0;

Scanner scanner = new Scanner(System.in);

while ((str = scanner.nextLine()) != null) {

int flag = 1;

if (!checkString(str)) {

flag = 0;

System.out.println("您输入的日期格式不符合要求" + "\n");

} else {

// 计算年月日

year = (str.charAt(0) - '0') * 1000 + (str.charAt(1) - '0')

* 100 + (str.charAt(2) - '0') * 10

+ (str.charAt(3) - '0');

month = (str.charAt(5) - '0') * 10 + (str.charAt(6) - '0');

day = (str.charAt(8) - '0') * 10 + (str.charAt(9) - '0');

// 每个月的天数不一样,分类讨论

if (month == 1 || month == 3 || month == 5 || month == 7

|| month == 8 || month == 10 || month == 12) {

if (day >= 1 && day <= 31) {

day += 2;

if (day > 31) { // 已经跨月了

month += 1;

day -= 31;

}

if (month > 12) { // 后两天跨年了

year += 1;

month = 1;

}

} else {

flag = 0;

System.out.println("您输入的日期不存在" + "\n");

}

} else if (month == 4 || month == 6 || month == 9

|| month == 11) {

if (day >= 1 && day <= 30) {

day += 2;

if (day > 30) {

month += 1;

day -= 30;

}

if (month > 12) {

year += 1;

month = 1;

}

} else {

flag = 0;

System.out.println("您输入的日期不存在" + "\n");

}

} else if (month == 2) {

if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {

// 如果为闰年

if (day >= 1 && day <= 29) {

day += 2;

if (day > 29) {

month += 1;

day -= 29;

}

if (month > 12) {

year += 1;

month = 1;

}

} else {

flag = 0;

System.out.println("您输入的日期不存在" + "\n");

}

} else {// 平年

if (day >= 1 && day <= 28) {

day += 2;

if (day > 28) {

month += 1;

day -= 28;

}

if (month > 12) {

year += 1;

month = 1;

}

} else {

flag = 0;

System.out.println("您输入的日期不存在" + "\n");

}

}

} else {

flag = 0;

System.out.println("您输入的月份不存在" + "\n");

}

}

if (flag == 1) { // 通过flag标志输入的日期是否合法

System.out.println("后天的日期为: " + year + "年" + month + "月" + day

+ "日" + "\n");

}

}

}

}

标签:

java推算日期后天_分别用C++和Java写的计算后天的日期code相关推荐

  1. java护照号码校验_学无止境之小白学java……第001天

    学习主题:预科阶段 对应视频: http://www.itbaizhan.cn/course/id/18.html 对应作业: 1. 为什么需要学编程,什么样的人可以做程序员? 编程是现实逻辑的表达, ...

  2. java中算两个时间内的秒数_java – Joda Time – 计算两个日期之间的秒数会引发异常....

    我使用以下代码来计算两个日期之间的秒数差异: long secondsBetween = (Seconds.secondsBetween(new LocalDate("1901-01-01& ...

  3. java青蛙过河打字_趣味算法——青蛙过河(JAVA)

    青蛙过河是一个非常有趣的智力游戏,其大意如下: 一条河之间有若干个石块间隔,有两队青蛙在过河,每队有3只青蛙,这些青蛙只能向前移动,不能向后移动,且一次只能有一只青蛙向前移动.在移动过程中,青蛙可以向 ...

  4. java rhino js类_让Rhino JS看Java类

    我正在玩 Rhino,我已经成功使用了stdlib中的Java类,但没有使用我编译的Java代码. 例如,这工作正常: print(new java.util.Date()); 但是使用NanoHTT ...

  5. java azure blob 查询_快速入门:适用于 Java 的 Azure Blob 存储客户端库 v8 | Microsoft Docs...

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 快速入门:使用 Jav ...

  6. java底层原理书籍_阿里面试题:Java中this和super关键字的底层实现原理

    知道的越多,不知道的就越多,业余的像一棵小草! 编辑:业余草 来源:https://www.xttblog.com/?p=5028 B 站:业余草 最近一个粉丝加我说,接到了阿里的面试,问问我阿里会面 ...

  7. java 优秀源码_想要快速进阶Java架构师?这份超强(长)学习计划单 请签收!...

    优秀工程师的成长之路就是一条不断打怪升级之路的"修仙之路"! 而Java程序员一向比别人更难,如果说大家都在修仙的话,java程序员简直神似"剑修",入行枯燥精 ...

  8. java编译器jdk版本_以编程方式确定Java类的JDK编译版本

    java编译器jdk版本 当需要确定使用哪个JDK版本来编译特定的Java .class文件时, 通常使用的方法是使用javap并在javap输出中查找列出的"主要版本". 我在我 ...

  9. java 并发编程多线程_多线程(一)java并发编程基础知识

    线程的应用 如何应用多线程 在 Java 中,有多种方式来实现多线程.继承 Thread 类.实现 Runnable 接口.使用 ExecutorService.Callable.Future 实现带 ...

  10. java引用公共类_使用键引用从Java公共类获取值 - java

    我们有一个Java公共类, public class Test { public class ob1 { public static final String test = "T1T1&qu ...

最新文章

  1. Roundgod and Milk Tea 贪心
  2. EPOLLOUT 事件的意义 以及 处理示例
  3. Pytorch install
  4. C++类的使用(五)—— 多态
  5. jQuery 结构分析
  6. 计算机进位法,计算机基础知识--进位计数制.docx
  7. Python语法报错相关语句
  8. 凯立德地图导航2020年最新版车载_高精度地图会把自动驾驶带跑偏吗?
  9. JS向NPAPI传递参数,并返回结果
  10. 【yolov3详解】一文让你读懂yolov3目标检测原理
  11. 目标跟踪(三)——多目标跟踪
  12. 3.0.0 alpha 重磅发布!九大新功能、全新 UI 解锁调度系统新能力
  13. 随机生成名字的Android页面
  14. 广X斜Y-1顶岗纪实
  15. Day20(lambda、stream、微服务、大数据、nginx)
  16. [转贴]民国记者有多牛:揭黑损人骂街是常事
  17. 【2-SAT初学+模板题讲解】POJ3683 Priest John's Busiest Day
  18. C# 7.0 SPANS
  19. 51单片机与LCD1602接口电路与程序
  20. 播音提示器软件设计与实现

热门文章

  1. python学习记录 day1
  2. 笔记本重装系统(Win10)
  3. ApiPost 前后端协作开发神器 Postman+Swagger+Mock+Websocket的完美替代品
  4. python跑神经网络_程序员深夜用Python跑神经网络,只为用中二动作关掉台灯!
  5. MN梦奈宝塔主机系统V1.5版本发布
  6. 3D游戏设计作业(三)
  7. [9]Windows内核情景分析 --- DPC
  8. 通过查看Qt助手(QtAssistant)了解并使用自己需要Qt库
  9. 【Beta】Scrum Meeting 4
  10. go语言数据类型之切片slice