正则表达式验证日期合法性(包括闰年)

本文详细介绍了使用正则表达式验证日期格式的合法性,并对其连接符进行扩展支持,包括 yyyy-MM-dd、yyyy/MM/dd、yyyy.MM.dd 及 yyyyddMM 的形式,以适应不同日期格式的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

根据上一篇文章正则表达式 验证日期合法性(包括匹配闰年)做了日期连接符的扩展,令其连接符支持“-”,“/”,“.”与yyyyMMdd的格式。

若要更换连接符,搜索并替换掉[-/.]{0,1}

/**
     * 
     * Description: 验证日期是否合法,匹配闰年
     *
     * @author Huanghs
     * 
     * @param date 日期字符串。格式: yyyy-MM-dd, yyyy/MM/dd, yyyy.MM.dd, yyyyMMdd
     * @return true:合法,false:不合法
     */
    public static boolean isDate(String date) {
    	Pattern pattern = Pattern.compile("(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})"
    			+ "[-/.]{0,1}(((0[13578]|1[02])[-/.]{0,1}(0[1-9]|[12][0-9]|3[01]))"
    			+ "|((0[469]|11)[-/.]{0,1}(0[1-9]|[12][0-9]|30))"
    			+ "|(02[-/.]{0,1}(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])"
    			+ "|((0[48]|[2468][048]|[3579][26])00))[-/.]{0,1}02[-/.]{0,1}29)");
    	Matcher matcher = pattern.matcher(date);
    	return matcher.matches();
    }

1.编写类MyDate.java 2.该类有如下构造方法 2.1 无参数构造方法public MyDate(),以当前的系统时间构造MyDate对象 2.2 public MyDate(int year, int month, int day), 以指定的年月日构造MyDate对象 3.该类有如下属性 3.1 private int year ;//年 3.2 private int month; //月 3.3 private int day; //日 4.该类有如下方法 4.1 public String after(int day); //返回当前对象代表的日期之后day天的日期,比如当前对象是2008-8-8,调用after(5)以后,应该返回2008-8-13,格式可自定义 4.2 public String before(int day); //返回当前对象代表的日期之前day天的日期,比如当前对象是2008-8-8,调用before(5)以后,应该返回2008-8-3,格式可自定义 4.3 public void setYear(int year); //设置年为指定值year 4.4 public void setMonth(int month); //设置月为指定值month 4.5 public void setDay(int day); //设置日为指定值day 4.6 public int getYear(); //返回当前对象的年 4.7 public int getMonth(); //返回当前对象的月 4.8 public int getDay(); //返回当前对象的日 4.9 public void set (int year, int month, int day); //设置年、月、日为指定的值year、month、day 4.10 public String toString();//以字符串形式返回当前对象的年月日,例如2008年08月08日,格式可自定义 4.11 public boolean equals(MyDate mydate);//当前对象与另一个对象比较,如果两个对象的年月日均相等,则返回true,反之返回false 5.编写TestMyDate.java,在main方法中对MyDate类的各个方法进行测试 6.按照编程规范为MyDate.java编写规范的代码 7.按照java doc API的要求,对代码编写规范的注释,然后利用javadoc.exe命令生成MyDate.java的API doc 8.撰写上机报告
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值