今天做Android的时候遇到一个需求,即校验yyyyMMdd格式的日期,没有搜索到合适的于是自己写了一个简单的小算法,权当复习SE了,顺便记录一下~
package ;
public class DateUtil {
/**
* 判断参数的格式是否为“yyyyMMdd”格式的合法日期字符串
*
* @author
* @since 02/24/15
* @param str
* @return true/false
*/
public static boolean isValidDate(String str) {
try {
if (str != null && !("")) {
if (() == 8) {
// 闰年标志
boolean isLeapYear = false;
String year = (0, 4);
String month = (4, 6);
String day = (6, 8);
int vYear = (year);
// 判断年份是否合法
if (vYear < 1900 || vYear > 2200) {
return false;
}
// 判断是否为闰年
if (vYear % 4 == 0 && vYear % 100 != 0 || vYear % 400 == 0) {
isLeapYear = true;
}
// 判断月份
// 1.判断月份
if (("0")) {
String units4Month = (1, 2);
int vUnits4Month = (units4Month);
if (vUnits4Month == 0) {
return false;
}
if (vUnits4Month == 2) {
// 获取2月的天数
int vDays4February = (day);
if (isLeapYear) {
if (vDays4February > 29)
return false;
} else {
if (vDays4February > 28)
return false;
}
}
} else {
// 2.判断非0打头的月份是否合法
int vMonth = (month);
if (vMonth != 10 && vMonth != 11 && vMonth != 12) {
return false;
}
}
// 判断日期
// 1.判断日期
if (("0")) {
String units4Day = (1, 2);
int vUnits4Day = (units4Day);
if (vUnits4Day == 0) {
return false;
}
} else {
// 2.判断非0打头的日期是否合法
int vDay = (day);
if (vDay < 10 || vDay > 31) {
return false;
}
}
return true;
} else {
return false;
}
} else {
return false;
}
} catch (Exception e) {
// TODO Auto-generated catch block
();
return false;
}
}
public static void main(String[] args) {
boolean result1 = ("20150203"); //true
boolean result2 = ("20150229"); //false
boolean result3 = ("20000229"); //true
boolean result4 = ("2015918"); //false
(result1);
(result2);
(result3);
(result4);
}
}
OK,碎觉,明天年后第一天上班~在2015年一定要更加努力~务必彻彻底底的拿下Android~加油!