- 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("日期输入正确");
- }
-
- //现在有一个问题,使用分割字符串后来判断,应该没什么问题
- //但是正则表达示,仅仅只能判断日期格式是否正确,应该怎么写正则表达示才能够验证闰年的情况呢?
- }
- }
复制代码 现在的问题是,使用分割字符串后来判断日期的正确性,应该没什么问题
但是正则表达示,仅仅只能判断日期格式是否正确,应该怎么写正则表达示才能够验证闰年的情况呢?
|
|