您的位置:首页 > 编程语言

2017年百度之星编程赛初赛A场-1005-今夕何夕

2017-08-12 22:17 375 查看


今夕何夕

 
 Accepts: 1345
 
 Submissions: 5533

 Time Limit: 2000/1000 MS (Java/Others)
 
 Memory Limit: 32768/32768 K (Java/Others)

Problem Description

今天是2017年8月6日,农历闰六月十五。
小度独自凭栏,望着一轮圆月,发出了“今夕何夕,见此良人”的寂寞感慨。
为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个日子,和今天的星期数一样?比如今天是8月6日,星期日。下一个也是星期日的8月6日发生在2023年。
小贴士:在公历中,能被4整除但不能被100整除,或能被400整除的年份即为闰年。

Input

第一行为T,表示输入数据组数。
每组数据包含一个日期,格式为YYYY-MM-DD。
1 ≤ T ≤ 10000
YYYY ≥ 2017
日期一定是个合法的日期

Output

对每组数据输出答案年份,题目保证答案不会超过四位数。

Sample Input

3
2017-08-06
2017-08-07
2018-01-01


Sample Output

2023
2023
2024


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class a {

public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
int T;
String gettime;
T = in.nextInt();
for (int i = 0; i < T; i++) {
gettime = in.next();
dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
Date time = dateFormatter.parse(gettime);
cal.setTime(time);
dateFormatter.applyPattern("E");
String today = "" + dateFormatter.format(cal.getTime());
int todayyear = cal.get(Calendar.YEAR);
int todaymonth = cal.get(Calendar.MONTH)+1;
int todayday = cal.get(Calendar.DAY_OF_MONTH);
System.out.println(""+todayyear+todaymonth+todayday);
if ((todaymonth==2&&todayday>=29)&&(todayyear % 4 == 0 && todayyear % 100 != 0) || todayyear % 400 == 0) {
String nextday;
while (true) {
cal.add(Calendar.YEAR, +4);
nextday = "" + dateFormatter.format(cal.getTime());
if (nextday.equals(today)) {
int year = cal.get(Calendar.YEAR);
System.out.println(year);
break;
}
}
} else {
String nextday;
while (true) {
cal.add(Calendar.YEAR, +1);
nextday = "" + dateFormatter.format(cal.getTime());
if (nextday.equals(today)) {
int year = cal.get(Calendar.YEAR);
System.out.println(year);
break;
}

}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  编程 java