几几年几几月几几日是这一年的第几天的问题

package first;

import java.util.Scanner;

//通过键盘输入某年某月某日,计算并输出这一天是这一年的第几天。例如,2001年3月5日是这一年的第64天。
public class 年月日问题 {
    public static void main(String[] args) {
        int year,mouth,days;
        int day=0;
        //累计天数
        int d=0;

        int e=0;
        Scanner scanner=new Scanner(System.in);
        do {
            System.out.println("请输入年:");
            year=scanner.nextInt();
            System.out.println("请输入月:");
            mouth=scanner.nextInt();
            System.out.println("请输入日");
            days=scanner.nextInt();
            if (mouth < 0 || mouth > 12 || days < 0 || days > 31) {
                System.out.println("输入错误!");
                e = 1;
            }
        }while (e == 1);
        for (int i=1;i<mouth;i++){
            switch (i){
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:{day=31;break; }
                case 4:
                case 6:
                case 9:
                case 11:{day=30;break;}
                case 2:{
                    /*闰年:1:非整百年数除以4,无余为闰,有余为平;2:整百年数除以400,无余为闰有余平
                            * 二月:平年28天、闰年29天*/
                    if ((year%100!=0 && year%4==0)||(year%100==0 &&year%400==0)){
                            day=29;
                    }else {
                        day=28;
                    }

                }
                default:break;
            }
            d+=day;
        }

        System.out.println(year+"年"+mouth+"月"+days+"日是这一年的第"+(d+days)+"天。");

    }

}

  

猜你喜欢

转载自www.cnblogs.com/chenjiajiale/p/12525699.html