日期比较的问题

cxmdcn 2007-07-27 01:09:53
我给一酒店做预定功能.客户要求预定者输入的时间不能在当前时间之前,可以是当天.用JSP怎么做?
谢谢!

另:取到的预住时间是String的,还需要转换一下.
...全文
214 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
grass_12 2007-07-27
  • 打赏
  • 举报
回复
API




date1.before(date2);

date1.after(date2);
watour 2007-07-27
  • 打赏
  • 举报
回复
api的基本问题,要自己学习的.
KingNE 2007-07-27
  • 打赏
  • 举报
回复
UP
xujiankeke 2007-07-27
  • 打赏
  • 举报
回复
不错不错 sureyor() 果然是高手啊 小的我佩服佩服
root98_4 2007-07-27
  • 打赏
  • 举报
回复
?
xujiankeke 2007-07-27
  • 打赏
  • 举报
回复
汗水啊那个流 泪水啊那个淌
sureyor 2007-07-27
  • 打赏
  • 举报
回复
嘎嘎 嘎嘎 嘎嘎
sureyor 2007-07-27
  • 打赏
  • 举报
回复
严重BS你们这种衣来伸手,饭来张口,有分就以为能够解决一切的态度!
缺乏钻研精神,是当不了一个好程序员的,改行吧~~~
joejoe1991 2007-07-27
  • 打赏
  • 举报
回复
嘎嘎 学习。。。 谢谢sureyor
sureyor 2007-07-27
  • 打赏
  • 举报
回复
public static boolean checkDateEarlier(String date1) throws Exception {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = df.parse(date1);
Date d2 = df.parse(df.format(new Date()));
if (d1.before(d2)) {
return true;
}
return false;
}
sureyor 2007-07-27
  • 打赏
  • 举报
回复
-_-,基本函数都给你啦,剩下的自己不能改呀,I fule you!!!
xujiankeke 2007-07-27
  • 打赏
  • 举报
回复
上面这位兄弟是不是都没看清楚需求哦 都说当天时间可以了啊 所以呢 :
System.out.println(Ruader.checkDateEarlier("2006-02-01", "2006-02-01"));
应该是输出 true 才对吧 所以这个功能还是没实现 哈哈 需要改下
sureyor 2007-07-27
  • 打赏
  • 举报
回复
java端更容易啦:

public static boolean checkDateEarlier(String date1, String date2) throws Exception {
DateFormat df = new SimpleDateFormat("yyy-MM-dd");
Date d1 = df.parse(date1);
Date d2 = df.parse(date2);
if (d1.before(d2)) {
return true;
}
return false;
}

public static void main(String[] args) throws Exception {
System.out.println(Ruader.checkDateEarlier("2006-02-01", "2006-02-01"));
System.out.println(Ruader.checkDateEarlier("2006-01-30", "2006-02-01"));
System.out.println(Ruader.checkDateEarlier("2006-02-22", "2006-02-01"));
}

结果输出:false,true,false
cxmdcn 2007-07-27
  • 打赏
  • 举报
回复
谢谢sureyor!

不过,我是要用JAVA实现服务器端的验证,不是JAVASCRIPT的前台校验.
sureyor 2007-07-27
  • 打赏
  • 举报
回复
function checkIsValidDate(str)
{
//如果为空,则通过校验
if(str == "")
return true;
var pattern = /^((\\d{4})|(\\d{2}))-(\\d{1,2})-(\\d{1,2})$/g;
if(!pattern.test(str))
return false;
var arrDate = str.split("-");
if(parseInt(arrDate[0],10) < 100)
arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
var date = new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
if(date.getYear() == arrDate[0]
&& date.getMonth() == (parseInt(arrDate[1],10) -1)+""
&& date.getDate() == arrDate[2])
return true;
else
return false;
}//~~~

function checkDateEarlier(strStart,strEnd)
{
if(checkIsValidDate(strStart) == false || checkIsValidDate(strEnd) == false)
return false;
//如果有一个输入为空,则通过检验
if (( strStart == "" ) || ( strEnd == "" ))
return true;
var arr1 = strStart.split("-");
var arr2 = strEnd.split("-");
var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
if(arr1[1].length == 1)
arr1[1] = "0" + arr1[1];
if(arr1[2].length == 1)
arr1[2] = "0" + arr1[2];
if(arr2[1].length == 1)
arr2[1] = "0" + arr2[1];
if(arr2[2].length == 1)
arr2[2]="0" + arr2[2];
var d1 = arr1[0] + arr1[1] + arr1[2];
var d2 = arr2[0] + arr2[1] + arr2[2];
if(parseInt(d1,10) > parseInt(d2,10))
return false;
else
return true;
}//~~~

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧