【二十二】java编程之switch:根据输入年月日,计算出是本年的第几天(SimpleDateFormat、Date、Calendar)

版权声明:转载注明出处 https://blog.csdn.net/jy02268879/article/details/81677151

 闰年是公历中的名词。

普通年:能被4整除但不能被100整除的年份为普通闰年。(如2004年就是闰年,1999年不是闰年);

世纪年:能被400整除的为世纪闰年。(如2000年是闰年,1900年不是闰年);

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class DayInYear {
    public static void main(String[] args){
        try {
            System.out.println("请输入年月日:格式yyyy-mm-dd");
            Scanner s = new Scanner(System.in);
            String n = s.next();

            SimpleDateFormat fd = new SimpleDateFormat ("yyyy-MM-dd");

            Date d = fd.parse(n);

            Calendar calendar=Calendar.getInstance();
            calendar.setTime(d);

            int year=calendar.get(Calendar.YEAR);
            int month=calendar.get(Calendar.MONTH)+1;
            int day=calendar.get(Calendar.DAY_OF_MONTH);

            if(month>12||month<1||day<1||day>31){
                System.out.println("输入格式错误");
                return;
            }

            System.out.println("year : "+year);
            System.out.println("month : "+month);
            System.out.println("day : "+day);

            int sumDay = 0;
            for(int i =1 ; i< month;i++){
                switch (i){
                    case 1:
                    case 3:
                    case 5:
                    case 7:
                    case 8:
                    case 10:
                    case 12:
                        sumDay += 31;
                        break;
                    case 4:
                    case 6:
                    case 9:
                    case 11:
                        sumDay += 30;
                        break;
                    case 2:
                        if((year%4==0&&year%100!=0)||year%400==0){
                            sumDay +=29;
                        }else{
                            sumDay +=28;
                        }
                        break;
                }
            }
            sumDay += day;
            System.out.println(year + "年" + month + "月" + day + "日是" + year + "年的第" + sumDay + "天");
        } catch (ParseException e) {
            System.out.println("输入格式错误");
            e.printStackTrace();
        }
    }
}

猜你喜欢

转载自blog.csdn.net/jy02268879/article/details/81677151
今日推荐