黑马程序员技术交流社区
标题:
如何使用正则表达示来判断日期是否正确
[打印本页]
作者:
SelonLiao
时间:
2014-10-14 14:53
标题:
如何使用正则表达示来判断日期是否正确
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RandomDemo {
public static void main(String[] args) {
//判断某个日期是否正确
//方法 1 使用字符分割来判断日期是否正确
String source = "2014-2-31";
String[] vals = source.split("-");
int year = Integer.parseInt(vals[0]);
int month = Integer.parseInt(vals[1]);
int day = Integer.parseInt(vals[2]);
System.out.println("分割字符来判断日期是否正确的结果:");
if(!(year>1999 && year<3014)) {
System.out.println("年份输入错误");
}
else if(!(month>0&&month<=12)){
System.out.println("月份输入错误");
}
else if(!(day>0&&day<32)){
System.out.println("日份输入错误");
}
else if(month==2 && day==29) //如果是2月份,日期是29号
{
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){ //那么判断是否为闰年
System.out.println("日期输入正确"); //如果是就正确
} else{
System.out.println("日期输入错误"); //如果不是就错误
}
}
else{
System.out.println("日期输入正确");
}
System.out.println("--------------------------------");
//方法2 使用正则来判断日期是否正确
String num = "2014-2-31";
System.out.println("使用正则来判断日期是否正确的结果:");
Pattern datePat = Pattern.compile("[1-9]\\d\\d\\d[-]([0-9]|1[0-2])[-]([1-9]|2\\d|3[0-1])");
Matcher result = datePat.matcher(num);
if(!result.matches()){
System.out.println("日期输入错误");
}else{
System.out.println("日期输入正确");
}
//现在有一个问题,使用分割字符串后来判断,应该没什么问题
//但是正则表达示,仅仅只能判断日期格式是否正确,应该怎么写正则表达示才能够验证闰年的情况呢?
}
}
复制代码
现在的问题是,使用分割字符串后来判断日期的正确性,应该没什么问题
但是正则表达示,仅仅只能判断日期格式是否正确,应该怎么写正则表达示才能够验证闰年的情况呢?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2