Java——输出第二天是哪天的程序

import java.util.Scanner;

public class DateApp {
	//写一个静态方法为了能够让主方法调用
	static String nextDate(int y,int m,int d) {
		//判断是否是闰年,因为闰年的二月天数不同
		boolean isLeep=false;
		//定义一个月的天数
		int dnum=31;
		//判断年数,年数不能是五位数,不能是三位数,月数不能比1小比12大
		if(y<1000||y>9999||m<1||m>12) {
			return "错误时间";
		}
		//判断是否是闰年,符合判断条件的则是闰年
		if((y%400==0)||(y%4==0&&y%100!=0)) {
			isLeep=true;
		}
		//判断,其中4,6,9,11月份是30天的,重新写dnum的天数
		switch(m) {
		case 4:
		case 6:
		case 9:
		case 11:
			dnum=30;
			break;
		case 2://单独判断2月
			if(isLeep) {
				dnum=29;
			}else {
				dnum=28;
			}
		}
		//判断天数,如果比实际月份天数大,或者小于1天,都为错误日期
		if(d<1||d>dnum) {
			return "错误日期";
		}
		//如果在当前月内,没有等于月份最后一天,则只是天数加1
		if(d!=dnum) {
			d++;
		}else {//否则分开判断,若是中间月,则月份加1,天数归1;若是最后一个月,则天数归1,年份加1,月份归1
			if(m==12) {
				y++;
				m=1;
				d=1;
			}else {
				m++;
				d=1;
			}
		}
		return y+"-"+m+"-"+d;//返回下一天的年月日
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int y,m,d;
		Scanner sc=new Scanner(System.in);
		String date=sc.nextLine();
		String ymd[]=date.split("-");//调用字符串date的方法,用“-”连接每个字符串
		y=Integer.parseInt(ymd[0]);
		m=Integer.parseInt(ymd[1]);
		d=Integer.parseInt(ymd[2]);
		String day=nextDate(y,m,d);
		System.out.println(day);
	}

}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值