在做一个mis,连接了sql server 2005.界面中有一个文本框,上面是输入日期的.
格式为yyyy-mm-dd.如果对用户的输入做异常处理.
我把它给提交给数据库.可是数据库只能对yyyy-mm-dd格式做处理.
例如20000101(提示输入格式有误)
2000-01-01(正确)
2000-01-71(数据库无法报错).
所以现在想在提交给数据库之前变对异常进行处理.
可是现在还没有好的思路,请大家多多帮忙!
格式为yyyy-mm-dd.如果对用户的输入做异常处理.
我把它给提交给数据库.可是数据库只能对yyyy-mm-dd格式做处理.
例如20000101(提示输入格式有误)
2000-01-01(正确)
2000-01-71(数据库无法报错).
所以现在想在提交给数据库之前变对异常进行处理.
可是现在还没有好的思路,请大家多多帮忙!
前台js处理的话:function getMaxDate(Y, M)
{
var d = new Date( Y +"/"+ (M+1) +"/0");
return d.getDate();
} 后台 java 处理的话:
//首先判断输入格式正确
String[] s = "2000-01-41".split("-");
if (s[1].startsWith("0"))
s[1] = s[1].replace("0", "");
if (s[2].startsWith("0"))
s[2] = s[2].replace("0", "");
int month = Integer.parseInt(s[1]);
Calendar c = Calendar.getInstance();
c.set(Calendar.MONTH, month - 1);
int days = c.getActualMaximum(Calendar.DAY_OF_MONTH);
if(Integer.parseInt(s[2])<days){
System.out.println("日期中天数输入不合法");
}
* 获取某年的某个月份的最大天数
*
* @param year
* @param month
* @return
*/
public static int getMaxDay(int year, int month) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month - 1);
return c.getActualMaximum(Calendar.DAY_OF_MONTH);
}
2楼的方法可行