栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

PTA 日期的推算

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PTA 日期的推算

已知今天的日期,请你推算若干天后是什么日期。

说明:假设今天的日期是 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();
	}
}

欢迎各位大佬指正批评呀!!!!

么么哒!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/284003.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号