[问题描述]
大数学家高斯有个好习惯:无论如何都要记日记。
他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210
后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?
高斯出生于:1777年4月30日。
在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。
高斯获得博士学位的那天日记上标着:8113
请你算出高斯获得博士学位的年月日。
提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21
public class LanQiao04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
int m = scan.nextInt();
String mm = null, dd = null;
// 高斯日记
int year = 1777 ;
int month=4;
int day=30;
for(int i=1;i<m;i++) {
day++;
if(month==2 && ((isLeapYear(year) &&day==30 )||(!isLeapYear(year) &&day==29))){
month=3;
day=1;
}
else if(month==12&&day==32) {
year++;
month=1;
day=1;
}
else if((month==1||month==3||month==5||month==7||month==10||month==8)&&day==32) {
month++;
day=1;
}
else if((month==4||month==6||month==9||month==11)&&day==31) {
month++;
day=1;
}
}
if (month < 10)
mm = "0" + month;
else
mm = month + "";
if (day < 10)
dd = "0" + day;
else
dd = day + "";
System.out.println(year + "-" + mm + "-" + dd);
}
private static boolean isLeapYear(int i) {
// TODO Auto-generated method stub
if (i % 4 == 0 || (i % 100 != 0 && i % 400 == 0))
return true;
return false;
}
}