java实现输入年份判断在哪一天?正则表达式待改进

import java.util.Scanner;

public class runYear {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // 年份格式:yyyy-mm-dd,
        @SuppressWarnings("resource")
        Scanner scan = new Scanner(System.in);
        while(scan.hasNext()){
            String str = scan.nextLine();
            String regex =  "[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}";
            if(str.matches(regex)){
                System.out.println(isRunYear(str));
            }else{
                System.out.println("格式错误,请重新输入!");
            }
            
        }
    }

    private static int isRunYear(String yMD) {
        // TODO Auto-generated method stub
        String[] str = yMD.split("\\-");
        int year = Integer.parseInt(str[0]);
        int month = Integer.parseInt(str[1]);
        int day = Integer.parseInt(str[2]);

        System.out.println(year + " "+month +" "+  day);
        int[] runYear = new int[]{31,29,31,30,31,30,31,31,30,31,30,31};
        int[] noRunYear = new int[]{31,28,31,30,31,30,31,31,30,31,30,31};
        
        int result = 0;
        if(isN(year)){
            for(int i=0;i<month-1;i++){
                result += runYear[i];
            }
            result += day;
        }else{
            for(int i=0;i<month;i++){
                result += noRunYear[i];
            }
            result += day;
        }
        return result;
    }

    private static boolean isN(int year) {
        // TODO Auto-generated method stub
        if (year % 4 == 0)//年份能用4整除
            return true;
        else
            return false;
    }

}