第六届南桥杯A组Java第二题 星系炸弹

时间:2022-09-10 14:34:45

第六届南桥杯A组Java第二题 星系炸弹
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。

请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19
请严格按照格式书写。不能出现其它文字或符号。

日期有关,好像蓝桥杯考了几次了。本来想用java的日期类的,但想想还是自己写吧。反正不难。

public class _2 {
public static void main(String[] args) {
int sy = 2014;
int sm = 11;
int sd = 9;
int day = 1000;
int[] days = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

while(day>365) {
sy++;
if(sy%4!=0) day -= 365;
else day -= 366;
}
while(day>=days[sm]){
day -= days[sm];
sm++;
if(sm>12) {
sm -= 12;
sy++;
}
}
sd += day;
if(sd>=days[sm]) {
sd -= days[sm];
sm++;
}
if(sm>12) {
sm -= 12;
sy++;
}
System.out.println(sy+"-"+sm+"-"+sd);

}
}

由于是考试,上面的代码不严谨,比如判断闰年,应该是(sy%400==0) ||(sy%4==0 &&sy%100!=0).
答案是2017-08-05