http://www.tek-tips.com/gviewthread.cfm/lev2/4/lev3/32/pid/269/qid/260346

解决方案 »

  1.   

    我复制了一份:
    /** @return the number of open days between sysdate and     dateRecup*/
      public static int nbWorkdays(String dateRecup)
      {
        GregorianCalendar calendar = new GregorianCalendar();
        Date sysDate = new Date();
        calendar.setTime(sysDate);
        
        //get a list of french holidays...
        String valRetour[] = new Workdays().calc(calendar.get(Calendar.YEAR));    SimpleDateFormat formatDate = new SimpleDateFormat("dd/MM/yyyy");
        String curDate = formatDate.format(sysDate);    Date dateConvert = null;
        
        int joursOuvres = 0;    while (!dateRecup.equals(curDate))
        {
          try {
           dateConvert = formatDate.parse(dateRecup);
           calendar.setTime(dateConvert);
          }
          catch (ParseException pe){
          }
          /*Ajout d'une journ閑 ?la date d'entr閑*/
          dateConvert.setTime(dateConvert.getTime()+(24 * 3600 * 1000));
          /*Conversion de la date d'entr閑 en String*/
          dateRecup = formatDate.format(dateConvert);      joursOuvres++;      /*Soustraction d'une journ閑 si dateRecup = samedi ou dimanche*/
          if (calendar.get(Calendar.DAY_OF_WEEK) == 7 
          || calendar.get(Calendar.DAY_OF_WEEK) == 1)           joursOuvres--;
          else
          {
            /*Soustraction d'une journ閑 si dateRecup est f閞i?/
            for (int i = 0; i < valRetour.length; i++)
            {
              if(valRetour[i].toString().indexOf(dateRecup) != -1) joursOuvres--;
            }
          }
        }
        return joursOuvres;
      }
      

  2.   

    在包corejava中有一个Day类,它就有计算两个日期之间的差值的函数daysBetween().
      

  3.   

    Calendar c1 = Calendar.getInstance();
        c1.set(begin.get(Calendar.YEAR),begin.get(Calendar.MONTH),begin.get(Calendar.DAY_OF_MONTH), begin.get(Calendar.HOUR_OF_DAY),begin.get(Calendar.MINUTE)); // 1999 jan 20
    Calendar c2 = Calendar.getInstance();
        c2.set(end.get(Calendar.YEAR),end.get(Calendar.MONTH),end.get(Calendar.DAY_OF_MONTH),end.get(Calendar.HOUR_OF_DAY),end.get(Calendar.MINUTE));
        //System.out.println("Date is : " + sdft.format(c1.getTime()));
        //c1.add(Calendar.MINUTE,20);
       // System.out.println("Date + 20 Minutes is : " + sdft.format(c1.getTime()));
        String c3 = null;
        String c4 = c3=sdft.format(c1.getTime());
        int days = c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR);
        int hours = c2.get(Calendar.HOUR_OF_DAY) - c1.get(Calendar.HOUR_OF_DAY);
        int minutes = c2.get(Calendar.MINUTE) - c1.get(Calendar.MINUTE);
      

  4.   

    Date start=new Date();
    Date stop=new Date();
    long days=(stop.getTime()-start.getTime())/1000/(24*60*60);
    就可以了,你试试吧!================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]