• 验证Android用户输入日期


    如何验证用户输入的日期是有效还是无效?

    private Pattern pattern;
    private Matcher matcher;
    private static final String DATE_PATTERN = 
           "(0?[1-9]|1[012]) [/.-] (0?[1-9]|[12][0-9]|3[01]) [/.-] ((19|20)\d\d)";
    /**
    * Validate date format with regular expression
    * @param date date address for validation
    * @return true valid date format, false invalid date format
    */
    public boolean validate(final String date){
      matcher = pattern.matcher(date);
      if(matcher.matches()){
          matcher.reset();
    
          if(matcher.find()){
              String day = matcher.group(1);
              String month = matcher.group(2);
              int year = Integer.parseInt(matcher.group(3));
    
              if (day.equals("31") && 
               (month.equals("4") || month .equals("6") || month.equals("9") ||
                       month.equals("11") || month.equals("04") || month .equals("06") ||
                       month.equals("09"))) {
                 return false; // only 1,3,5,7,8,10,12 has 31 days
              }             
          }
          else{
               return false;
          }        
      }
      else{
          return false;
      }              
    }
    private Pattern pattern;
    private Matcher matcher;
    
    private static final String DATE_PATTERN = 
           "(0?[1-9]|1[012]) [/.-] (0?[1-9]|[12][0-9]|3[01]) [/.-] ((19|20)\d\d)";
    
    
      /**
       * Validate date format with regular expression
       * @param date date address for validation
       * @return true valid date format, false invalid date format
       */
    public boolean validate(final String date){
    
      matcher = pattern.matcher(date);
    
      if(matcher.matches()){
          matcher.reset();
    
          if(matcher.find()){
              String day = matcher.group(1);
              String month = matcher.group(2);
              int year = Integer.parseInt(matcher.group(3));
    
              if (day.equals("31") && 
                (month.equals("4") || month .equals("6") || month.equals("9") ||
                       month.equals("11") || month.equals("04") || month .equals("06") ||
                       month.equals("09"))) {
                 return false; // only 1,3,5,7,8,10,12 has 31 days
              } 
    
              else if (month.equals("2") || month.equals("02")) {
                   //leap year
                   if(year % 4==0){
                       if(day.equals("30") || day.equals("31")){
                           return false;
                       }
                       else{
                           return true;
                       }
                  }
                  else{
                      if(day.equals("29")||day.equals("30")||day.equals("31")){
                          return false;
                      }
                      else{
                          return true;
                      }
                  }
              }
    
              else{               
                  return true;                
              }
          }
    
          else{
               return false;
          }        
      }
      else{
          return false;
      }              
    }

    再将下面的代码放到onClick()中:

    matcher = Pattern.compile(DATE_PATTERN).matcher(Birthday);
    
    //Birthday validator
        else if (!matcher.matches()) {
        Toast.makeText(getApplicationContext(), "Invalid Birthday!", Toast.LENGTH_SHORt).show();                    
    }
  • 相关阅读:
    iOS 快语句(block)浅析
    iOS中控制器的创建
    iOS中的截屏
    iOS&UITextView中的placeholder属性
    iOS归档,解档
    iOS内存警告浅析
    scrollWidth,clientWidth,offsetWidth的区别
    css3学习笔记
    页面重构的常用规范
    页面重构的职业定位
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/5748386.html
Copyright © 2020-2023  润新知