已知今天的日期,请你推算若干天后是什么日期。
说明:假设今天的日期是 y1 年 m1 月 d1 日,过 n 天后的日期为 y2 年 m2 月 d2 日。
输入格式
y1/m1/d1
n(n>0)
输出格式
y2/m2/d2
注:y2 至少4位数字,m2 和 d2 至少2位数字,若位数不够,则前面补0。
输入样例
2018/2/14 22
结尾无空行
输出样例
2018/03/08
结尾无空行
思路:由日期推算到月份,再逐层进行判断,有思路就好写啦!!!!
代码如下:
package xzj;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.next();
int n = in.nextInt();
String[] days = str.split("/");
int year=Integer.parseInt(days[0]);
int month=Integer.parseInt(days[1]);
int day=Integer.parseInt(days[2]);
int[] a1= {0,31,28,31,30,31,30,31,31,30,31,30,31};
int[] a2= {0,31,29,31,30,31,30,31,31,30,31,30,31};
day+=n;
while(true) {
if((year%4==0&&year%100!=0)||year%400==0)
{
if(day>a2[month])
{
day=day-a2[month];
month++;
}
else
{
break;
}
if(month>12)
{
month=1;
year++;
}
}
else
{
if(day>a2[month])
{
day=day-a1[month];
month++;
}
else
{
break;
}
if(month>12)
{
month=1;
year++;
}
}
}
System.out.printf("%04d/%02d/%02d",year,month,day);
System.out.println();
}
}
欢迎各位大佬指正批评呀!!!!
么么哒!!!



