试题编号: | 201509-2 |
试题名称: | 日期计算 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: |
问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 注意闰年的2月有29天。满足下面条件之一的是闰年: 1) 年份是4的整数倍,而且不是100的整数倍; 2) 年份是400的整数倍。 输入格式 输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。 输入的第二行包含一个整数d,d在1至365之间。 输出格式 输出两行,每行一个整数,分别表示答案的月份和日期。 样例输入 2015 80 样例输出 3 21 样例输入 2000 40 样例输出 2 9 |
问题描述:给定一个年份y和一个整数d,问这一年的第d天是几月几日?
package test; import java.util.Scanner; public class b_06 {
public static void main(String[] args){
int year,d;
Scanner in=new Scanner(System.in);
year=in.nextInt();
d=in.nextInt(); int month=0;
int day=0;
//闰年判断
boolean run=false;
if(year%100==0){
if(year%400==0) {
if(year%4==0){
run=true;
}
}
}else if(year%4==0)run=true; // System.out.println(run);
if(!run){
// switch(day)
// {
// case
// }
if(d<=31){
month=1;
day=d;
}else if(d<=59){
month=2;
day=d-31;
}else if(d<=90){
month=3;
day=d-59;
}else if(d<=120){
month=4;
day=d-90;
}else if(d<=151){
month=5;
day=d-120;
}else if(d<=181){
month=6;
day=d-151;
} else if(d<=212){
month=7;
day=d-181;
} else if(d<=243){
month=8;
day=d-212;
} else if(d<=273){
month=9;
day=d-243;
} else if(d<=304){
month=10;
day=d-273;
} else if(d<=334){
month=11;
day=d-304;
} else if(d<=365){
month=12;
day=d-334;
}
}else {
if(d<=31){
month=1;
day=d;
}else if(d<=60){
month=2;
day=d-31;
}else if(d<=91){
month=3;
day=d-60;
}else if(d<=121){
month=4;
day=d-91;
}else if(d<=152){
month=5;
day=d-121;
}else if(d<=182){
month=6;
day=d-152;
} else if(d<=213){
month=7;
day=d-182;
} else if(d<=244){
month=8;
day=d-213;
} else if(d<=274){
month=9;
day=d-244;
} else if(d<=305){
month=10;
day=d-274;
} else if(d<=335){
month=11;
day=d-305;
} else if(d<=366){
month=12;
day=d-335;
}
} System.out.println(month);
System.out.println(day);
}
}