我是靠谱客的博主 兴奋帅哥,最近开发中收集的这篇文章主要介绍AT54割り切れる日付(整除日),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目详情:
高桥君很喜欢“整除日”。

“整除日”就是指日期中,年÷月÷日的值是整数的日期。

比如说2012年5月2日这一天,因为2012÷5÷2=201.2,结果不是整数,所以这天不是“整除日”。

因为高桥君实在太喜欢“整除日”了,总是盼着下一个“整除日”,所以他每天都要查一下今天是不是“整除日”。

他还很想知道下一个“整除日”什么时候到来。

输入一个日期,他希望输出这个日期之后最近的“整除日”。特别地,如果输入就是“整除日”,那么就输出输入的这个日期。

输入格式:

输入格式如下:

Y/M/D,表示Y年M月D日,Y为4位,M、D为两位,如果不足,会在前面补上0。

输出格式:

输出也按输入的格式输出,即XXXX/XX/XX,位数不足则用0补齐。

最后换行。

范围:

输入日期在1000/01/01和2999/12/31之间。
直接上代码

import java.util.Scanner;
public class AT54 {
	static int[] M= {0,31,28,31,30,31,30,31,31,30,31,30,31};
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int y=sc.nextInt();
		int m=sc.nextInt();
		int d=sc.nextInt();
		if(y%400==0||y%4==0&&y%100!=0) {
			M[m]=29;
		}else M[m]=28;
		
		while(y%(d*m)!=0)
		{
		//一下是解决日期问题的固定模版,
		//上面先判断一下闰年与平年的2月份天数,
		//当d超出这个月的最大天数,就重置为1,月份m加1;
		//当月份超过12月,月份重置为1,年数加1.
			d++;
			if(d>M[m]) {
				d=1;
				m++;
			}
			if(m>12) {
				m=1;
				y++;
			}
		}
		System.out.printf("%04d/%02d/%02d",y,m,d);
	}

}

最后

以上就是兴奋帅哥为你收集整理的AT54割り切れる日付(整除日)的全部内容,希望文章能够帮你解决AT54割り切れる日付(整除日)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部