Titan專欄

          用文字來整理生命

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            44 隨筆 :: 49 文章 :: 19 評(píng)論 :: 0 Trackbacks

          看完了jdk的help,發(fā)現(xiàn)sun沒有提供這樣的一個(gè)函數(shù),朋友給了幾個(gè)實(shí)現(xiàn)方法

          //取得剩余天數(shù)
             SimpleDateFormat df=new SimpleDateFormat("yyyymmdd");
             Date d0=new java.util.Date();
             Date d1=df.parse(end_date);
             long time0=d0.getTime();
             long time1=d1.getTime();
             System.out.println((time1-time0)/(1000*60*60*24));

          這樣算兩個(gè)時(shí)間相差的天數(shù)比較好

          /**
               * 計(jì)算兩個(gè)日期之間相差的天數(shù)
               *
               * @param date1
               * @param date2
               * @return
               */
              public static int diffdates(Date date1, Date date2) {
                  int result = 0;
                  ElapsedTime et = new ElapsedTime();

                  GregorianCalendar gc1 = new GregorianCalendar();
                  GregorianCalendar gc2 = new GregorianCalendar();

                  gc1.setTime(date1);
                  gc2.setTime(date2);
                  result = et.getDays(gc1, gc2);

                  return result;
              }

          然后ElapseTime中的方法是:
          public int getDays(GregorianCalendar g1, GregorianCalendar g2) {
            int elapsed = 0;
            GregorianCalendar gc1, gc2;

            if (g2.after(g1)) {
             gc2 = (GregorianCalendar) g2.clone();
             gc1 = (GregorianCalendar) g1.clone();
            } else {
             gc2 = (GregorianCalendar) g1.clone();
             gc1 = (GregorianCalendar) g2.clone();
            }

            gc1.clear(Calendar.MILLISECOND);
            gc1.clear(Calendar.SECOND);
            gc1.clear(Calendar.MINUTE);
            gc1.clear(Calendar.HOUR_OF_DAY);

            gc2.clear(Calendar.MILLISECOND);
            gc2.clear(Calendar.SECOND);
            gc2.clear(Calendar.MINUTE);
            gc2.clear(Calendar.HOUR_OF_DAY);

            while (gc1.before(gc2)) {
             gc1.add(Calendar.DATE, 1);
             elapsed++;
            }
            return elapsed;
           }
          其實(shí)使用joda最簡(jiǎn)單

          public boolean isRentalOverdue(DateTime datetimeRented) {
            Period rentalPeriod = Period.days(2);
            return datetimeRented.plus(rentalPeriod).isBeforeNow()
          }

          posted on 2006-02-13 22:25 Titan 閱讀(7073) 評(píng)論(0)  編輯  收藏 所屬分類: Java技術(shù)
          主站蜘蛛池模板: 临猗县| 东兰县| 金沙县| 铜川市| 台北市| 扬中市| 常德市| 苍梧县| 吉木萨尔县| 敦化市| 南部县| 蓬安县| 沅陵县| 稻城县| 建始县| 紫金县| 隆昌县| 游戏| 阳城县| 内丘县| 墨玉县| 筠连县| 衢州市| 南和县| 周口市| 北辰区| 石棉县| 神池县| 新郑市| 石泉县| 满洲里市| 延安市| 调兵山市| 金昌市| 岢岚县| 吉安市| 井冈山市| 宜宾市| 康乐县| 班玛县| 伊宁县|