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

本文介绍了一个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;
    }

}

转载于:https://www.cnblogs.com/lovexz/p/6730812.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值