概述
题目详情:
高桥君很喜欢“整除日”。
“整除日”就是指日期中,年÷月÷日的值是整数的日期。
比如说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割り切れる日付(整除日)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复