杭电oj2005题第几天?
这道题的关键是要怎么从输入的字符串中获取年份月份和天,可以用split方法,将字符串按“/”分割成3个数组,这样就得到了年月日,然后进行格式转换即可,
在这里要注意平年和闰年的判断,所以要有两个数组,用来保存平年和闰年各个月份的的天数,用来求和。
代码如下
import java.util.Scanner;
public class hd2005 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
int[] mon1 = {0,31,28,31,30,31,30,31,31,30,31,30,31}; //记录月份的天数
int[] mon2 = {0,31,29,31,30,31,30,31,31,30,31,30,31}; //闰年
while(scan.hasNext()){
String str = scan.nextLine();
String[] date = str.split("/"); //将字符串以‘/’分割成若干个字符串
int year = Integer.parseInt(date[0]); //将字符换转换成int
int month = Integer.parseInt(date[1]);
int day = Integer.parseInt(date[2]);
int sum = 0;
//判断是否为闰年
if(year%4==0 && year%100!=0) { //能被4整除不能被100整除
for(int i=1;i<month;i++) {
sum += mon2[i];
}
}
else if(year%100==0 && year%400==0) { //被100和400整除
for(int i=1;i<month;i++) {
sum += mon2[i];
}
}
else { //平年
for(int i=1;i<month;i++) {
sum += mon1[i];
}
}
sum += day;
System.out.println(sum);
}
}
}