问题:java里的calendar类型有没有方法计算两个calendar类型之间的天数的函数。
我看了一下,似乎没有,不知道这里的大哥大姐们碰到这样的问题都是怎么解决的?
我实在不想写一个好长好长的程序了,头都大了。
以前写过c的,太麻烦了,而且上次写得也没了,还想改改用呢。
这个最好能给出院程序,因为我实在懒得写了。
写了一天程序头都大了,麻烦各位了。
最好是谁机子上就有现成的,一个Ctrl+c,在一个 Ctrl+v分就到手了。
要是谁真的是为我专门写得你可要特别说明啊,我会多给点分的。同样,见者有分。

解决方案 »

  1.   

    getTimeInMillis()  方法得到的数值是什么意思啊。
    这会不会是一个突破口。
    两个日期分别得到他们的getTimeInMillis()
    然后相减再处以某个数应该就是答案了。
    嗬嗬,我太聪明了吧。
      

  2.   

    to: yanxiazhiqiu(if the words don't come my way...) 
    getTime()得到的是两个date类型的变量,好像不可以用减号连接吧。
      

  3.   

    那就再加个.getTime()...这是什么意思啊?
    不明白!24*60*60*1000
    是对的,因为是微秒。
      

  4.   


      long from = now.getTimeInMillis();
      long to = inputdate.getTimeInMillis();
      long tianshu = (to - from )/ 86400000-1;
     
    应该是这样的吧,我算了算,差不多。呵呵。
    csdn咋不交给自己加分呢,这个问题都是我自己想的么。
    只能看测试了,谁能提出好的建议,还是给分的。不能把44分全给一个什么什么都没说出来的家伙吧。to:yanxiazhiqiu(if the words don't come my way...) 
    不知道你是不想给我说还是你得java真的不怎么样啊。
    你每次好像都说不到点子上么,不过我还是会给你一个最积极奖的。
      

  5.   

    public static int dateDiff(String interval,java.util.Date date1, java.util.Date date2) {
    int intReturn=-1000000000 ;
    if (date1==null || date2==null || interval==null) return intReturn ;
    try {
    java.util.Calendar cal1 = java.util.Calendar.getInstance(); 
    java.util.Calendar cal2 = java.util.Calendar.getInstance();

    // different date might have different offset
    cal1.setTime(date1);          
    long ldate1 = date1.getTime() + cal1.get(java.util.Calendar.ZONE_OFFSET) + cal1.get(java.util.Calendar.DST_OFFSET);

    cal2.setTime(date2);
    long ldate2 = date2.getTime() + cal2.get(java.util.Calendar.ZONE_OFFSET) + cal2.get(java.util.Calendar.DST_OFFSET);

    // Use integer calculation, truncate the decimals
    int hr1   = (int)(ldate1/3600000);
    int hr2   = (int)(ldate2/3600000);

    int days1 = (int)hr1/24;
    int days2 = (int)hr2/24;

    int yearDiff  = cal2.get(java.util.Calendar.YEAR) - cal1.get(java.util.Calendar.YEAR); 
    int monthDiff = yearDiff * 12 + cal2.get(java.util.Calendar.MONTH) - cal1.get(java.util.Calendar.MONTH);
    int dateDiff  = days2 - days1;
    int hourDiff  = hr2 - hr1;
    int minuteDiff  =  (int)(ldate2/60000) - (int)(ldate1/60000);
    int secondDiff  =  (int)(ldate2/1000) - (int)(ldate1/1000);

    if (interval.equals("Y")){
    intReturn = yearDiff;
    }
    else if (interval.equals("M")){
    intReturn = monthDiff;
    }
    else if (interval.equals("D")){
    intReturn = dateDiff;
    }
    else if (interval.equals("H")){
    intReturn = hourDiff;
    }
    else if (interval.equals("m")){
    intReturn = minuteDiff;
    }
    else if (interval.equals("S")){
    intReturn = secondDiff;
    }
    }
    catch (Exception ex) {
    }
    return intReturn;
    }
      

  6.   

    if the words don't come my way...hope u still know ...what my heart wants to say!我无语
      

  7.   

    int temp;时间差
    proDate.set(2005, 11, 1);//过去一个时间
    Calendar now=Calendar.getInstance();//现在
    now.setTime(new Date());temp=proDate.after(now);    
      

  8.   

    to:auzn3224(彩虹幽灵) 
    你给的这程序注释好像太少了,我看得不是很明白。
    麻烦你把注释稍微再加一点。
    非常感谢你的回答。还有就是
    int temp;时间差
    proDate.set(2005, 11, 1);//过去一个时间
    Calendar now=Calendar.getInstance();//现在
    now.setTime(new Date());temp=proDate.after(now);
    //这样就可以得到两个日期之间的天数吗?这段话是什么意思啊,我没看明白。顺便麻烦你在解释一下。
      

  9.   

    to:yanxiazhiqiu(if the words don't come my way...) 
    呵呵,怎么无语了啊。
    不要这灰心啊,我想可能是你忙把。
    希望你在我以后学习的路上能多帮帮我啊。
    不要老是敷衍我或者说一半,这样我很难理解的。