java求年月日是否是合法日期

本文介绍了使用Java的SimpleDateFormat类进行日期解析以及自定义函数check_valid来验证日期是否合法,特别关注闰年的判断规则。
摘要由CSDN通过智能技术生成

1.使用SimpleDateFormat类

   public static boolean CheckDate(String str){
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyyMMdd");
        simpleDateFormat.setLenient(false);
        try {
            Date date=simpleDateFormat.parse(str);
            return true;
        }catch (ParseException e){
            return false;
        }
    }
 该类的parse方法执行成功则证明该日期合法

2.手打手判断

static int months[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; 

public static boolean check_valid(int date){
        int year=date/10000;
        int month=date%10000/100;
        int day=date%100;//分离年月日
        if(day==0||month<=0||month>12)return false;//显然的不合法情况
        if(month!=2&&day>months[month])return false;//月份不是2,day不合法就不合法
        if(month==2){//月份是2
            if((year%4==0&&year%100!=0)||(year%400==0))if(day>29)return false;//是闰月, day必须<=29
            else if(day>28)return false;//是平月,day必须<=28
        }
        return true;
    }

闰年的条件:1.可以被4整除但不能被100整除

                   2.可以被400整除

核心判断方法:

if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值