zoukankan      html  css  js  c++  java
  • Java 日期验证和获取

     /**
         * 日期格式 yyyyMMdd
         */
        private static final String DATEFORMAT = "([0-9]{4})(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])";
    
    
    
    /**
         * 
         * isDate 判断是否是有效的日期
         * @param date 日期字符串
         * @return 是否
         */
        public static boolean isDate(String date) {
            
            Pattern pattern = Pattern.compile(DATEFORMAT);
            Matcher matcher = pattern.matcher(date);
            if (matcher.matches()) {
                pattern = Pattern.compile(DATE);
                matcher = pattern.matcher(date);
                if (matcher.matches()) {
                    int y = Integer.valueOf(matcher.group(1));
                    int m = Integer.valueOf(matcher.group(2));
                    int d = Integer.valueOf(matcher.group(3));
                    if (d > 28) {
                        Calendar c = Calendar.getInstance();
                        c.set(y, m - 1, 1);
                        // 每个月的最大天数
                        int lastDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
                        return (lastDay >= d);
                    }
                }
                return true;
            }
            return false;
        }
    private static final String DATEFORMAT = "([0-9]{4})(0[1-9]|1[012])";
        private static final String DATE = "(\d{4})(\d{2})";
    
    
    
     /**
         * 返回月份最后一天
         *
         * @param month  日期 yyyyMM
         * @param amount 增加月份
         * @return String
         */
        public static String addMonth(String month, int amount) {
            Date result = null;
            Pattern pattern = Pattern.compile(DATEFORMAT);
            Matcher matcher = pattern.matcher(month);
            if (matcher.matches()) {
                pattern = Pattern.compile(DATE);
                matcher = pattern.matcher(month);
                if (matcher.matches()) {
                    int y = Integer.parseInt(matcher.group(1));
                    int m = Integer.parseInt(matcher.group(2));
                    Calendar c = Calendar.getInstance();
                    c.set(y, (m - 1 + amount), 1);
                    // 每个月的最大天数
                    int lastDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
                    c.set(Calendar.DAY_OF_MONTH, lastDay);
                    result = c.getTime();
                }
            }
            SimpleDateFormat sdfDay = new SimpleDateFormat("yyyyMMdd");
            return sdfDay.format(result);
        }
  • 相关阅读:
    使用ExpandableListView——当有Group选项展开时,如何正确获取长按的Group选项。
    Android 如何全局获取Context
    Android记录11-控制ExpandableListView展开和关闭
    setOnKeyListener响应两次问题
    ExpandableListView方法详解
    Leetcode 75 Sort Colors
    Leetcode 48 Rotate Image
    Leetcode 64 Minimum Path Sum
    Leetcode 268 Missing Number
    Leetcode 39 40 216 Combination Sum I II III
  • 原文地址:https://www.cnblogs.com/ZJ199012/p/15268431.html
Copyright © 2011-2022 走看看