public static boolean checkDateYMD(String valDate) {
String val = valDate.replaceAll("\\s*", "");
if (!val.contains("/")) {
return false;
}
String[] vals = val.split("/");
if (vals.length < 2 || vals.length > 3) {
return false;
}
int year,month,day;
try{
year = Integer.parseInt(vals[0]);
month = Integer.parseInt(vals[1]);
day = Integer.parseInt(vals[2]);
System.out.println("年月日:"+year+"/"+month+"/"+day);
}catch (Exception e){
return false;
}
int monthlength = vals[1].length();
int daylength = vals[2].length();
if(month < 10 && monthlength < 2) monthlength++;
if(day < 10 && daylength < 2) daylength++;
try {
if (val.length() > 10 && checkDate(val)) {
return false;
}
} catch (Exception e) {
return false;
}
if (vals.length == 3 && (vals[0].length() != 4 || monthlength != 2 || daylength != 2)) {
return false;
}
if (month < 1 || month > 12) {
return false;
}
if (day < 1 || day > 31) {
return false;
}
if ((month == 4 || month == 6 || month == 9 || month == 11) &&(day == 31)) {
return false;
}
boolean leap = false;
if (month == 2) {
leap = (year % 4 == 0 &&(year % 100 != 0 || year % 400 == 0));
if (day>29 || (day == 29 && !leap)) {
return false;
}
}
return true;
}
public static boolean checkDate(String val) {
try {
String rexp = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?" +
"((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|" +
"(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]" +
"?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|" +
"([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))";
if (!val.matches(rexp)) {
return false;
}
} catch (Exception e) {
return false;
}
return true;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)