zoukankan      html  css  js  c++  java
  • Java判断字符串是否符合yyyyMMdd日期格式

    Java判断字符串是否符合yyyyMMdd日期格式

    代码:

        /** 
         * 判断参数的格式是否为“yyyyMMdd”格式的合法日期字符串 
         *  
         */  
        public static boolean isValidDate(String str) {  
            try {  
                if (str != null && !str.equals("")) {  
                    if (str.length() == 8) {  
                        // 闰年标志  
                        boolean isLeapYear = false;  
                        String year = str.substring(0, 4);  
                        String month = str.substring(4, 6);  
                        String day = str.substring(6, 8);  
                        int vYear = Integer.parseInt(year);  
                        // 判断年份是否合法  
                        if (vYear < 1900 || vYear > 2200) {  
                            return false;  
                        }  
                        // 判断是否为闰年  
                        if (vYear % 4 == 0 && vYear % 100 != 0 || vYear % 400 == 0) {  
                            isLeapYear = true;  
                        }  
                        // 判断月份  
                        // 1.判断月份  
                        if (month.startsWith("0")) {  
                            String units4Month = month.substring(1, 2);  
                            int vUnits4Month = Integer.parseInt(units4Month);  
                            if (vUnits4Month == 0) {  
                                return false;  
                            }  
                            if (vUnits4Month == 2) {  
                                // 获取2月的天数  
                                int vDays4February = Integer.parseInt(day);  
                                if (isLeapYear) {  
                                    if (vDays4February > 29)  
                                        return false;  
                                } else {  
                                    if (vDays4February > 28)  
                                        return false;  
                                }  
                            }  
                        } else {  
                            // 2.判断非0打头的月份是否合法  
                            int vMonth = Integer.parseInt(month);  
                            if (vMonth != 10 && vMonth != 11 && vMonth != 12) {  
                                return false;  
                            }  
                        }  
                        // 判断日期  
                        // 1.判断日期  
                        if (day.startsWith("0")) {  
                            String units4Day = day.substring(1, 2);  
                            int vUnits4Day = Integer.parseInt(units4Day);  
                            if (vUnits4Day == 0) {  
                                return false;  
                            }  
                        } else {  
                            // 2.判断非0打头的日期是否合法  
                            int vDay = Integer.parseInt(day);  
                            if (vDay < 10 || vDay > 31) {  
                                return false;  
                            }  
                        }  
                        return true;  
                    } else {  
                        return false;  
                    }  
                } else {  
                    return false;  
                }  
            } catch (Exception e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
                return false;  
            }  
        }  
  • 相关阅读:
    导出PDF乱码
    C/S模式下的打印方法
    填报表导出excel后不可写的单元格处于锁定状态
    多表批量导出txt及打压缩包下载
    客户端定时自动打印页面的例子
    套打中的自定义纸张设置
    linux客户端打印报表时操作系统的配置
    大数据量报表APPLET打印分页传输方案
    Python中类的定义及使用
    Solr7.7高级应用【MLT相似文档搜索、自动补全、自动纠错】
  • 原文地址:https://www.cnblogs.com/lizm166/p/8116868.html
Copyright © 2011-2022 走看看