CCF201509-2 日期计算 java(100分)

试题编号: 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);
    }
}