给一个酒店做预定功能,客户要求不能提前7天以上预定,预定时期更不能早于当前时间.
从表单取到是String 类型的 ,变量名为staydate
这个方法应该如何写呢?
谢谢!!

解决方案 »

  1.   

    你用的什么数据库我做过电信订餐系统也是类似的功能用sql里面的时间比较函数就可以实现
      

  2.   

    我用的SQL SERVER 2000,直接用SQL语句怎么写?
      

  3.   

    import java.text.*;
    import java.util.*;public class TimeCompare{ public static void main(String[] args){
      boolean flag = isDateBefore("2004-09-09 12:12:12","2005-09-09 16:00:00");
      System.out.println(flag);
      flag = isDateBefore("2006-09-09 01:01:01","2005-09-09 16:00:00");
      System.out.println(flag);
      flag = isDateBefore("2005-09-09 01:01:01");
      System.out.println(flag);
     } //判断时间date1是否在时间date2之前
     //时间格式 2005-4-21 16:16:34
     public static boolean isDateBefore(String date1,String date2){
      try{
       DateFormat df = DateFormat.getDateTimeInstance();
       return df.parse(date1).before(df.parse(date2));
      }catch(ParseException e){
       System.out.print("[SYS] " + e.getMessage());
       return false;
      }
     }
     
     //判断当前时间是否在时间date2之前
     //时间格式 2005-4-21 16:16:34
     public static boolean isDateBefore(String date2){
      try{
       Date date1 = new Date();
       DateFormat df = DateFormat.getDateTimeInstance();
       return date1.before(df.parse(date2));
      }catch(ParseException e){
       System.out.print("[SYS] " + e.getMessage());
       return false;
      }
     }}
      

  4.   

     public boolean isDateBefore(String staydate)

      try
        { 
           Date currentdate = new Date(); 
           DateFormat df = DateFormat.getDateTimeInstance(); 
           if(currentdate.before(df.parse(date2)) && currentdate.Day + 7 >= staydate.Day)
             {
                return true;
             }
           else
             {
                return false;
             }
         }
      catch(ParseException e)
        { 
          System.out.print("[SYS] " + e.getMessage()); 
          return false; 
        } 
     } 
      

  5.   

    简单说一下算法思路。//当前日期
    Calendar currentTime = Calendar.getInstance();
    //预定日期
    Calendar bookTime = Calendar.getInstance();
    DateFormat df = DateFormat.getDateTimeInstance(); 
    bookTime.setTime(df.parse(staydate));
    //当前日期+7天,如果在预定日期之前,那么提前7天预定的。
    currentTime.add(Calendar.DATE, 7);currentTime.before(bookTime);
      

  6.   

    to 蓝色妖姬
    currentdate.Day  好象没有这个方法.
      

  7.   

    黑莲居士的做法是网上copy的其实用sql自身的时间函数就可以实现