yerenzyy

          java中計(jì)算兩日期間隔天數(shù)的簡(jiǎn)單示例

          package com.color.program;

          import java.text.DateFormat;
          import java.text.ParseException;
          import java.text.SimpleDateFormat;
          import java.util.Calendar;
          import java.util.Date;

          public class CompareTime {

          public static void main(String[] args){
          String t1 = "2008-05-09";
          String t2 = "2008-5-13";

          try {
          System.out.println(CompareTime.getBetweenDays(t1, t2));
          } catch (ParseException e) {
          e.printStackTrace();
          }
          }

          /**
          * 取得兩個(gè)時(shí)間段的時(shí)間間隔
          * return t2 與t1的間隔天數(shù)
          * throws ParseException 如果輸入的日期格式不是0000-00-00 格式拋出異常
          */
          public static int getBetweenDays(String t1,String t2) throws ParseException{
          DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
          int betweenDays = 0;
          Date d1 = format.parse(t1);
          Date d2 = format.parse(t2);
          Calendar c1 = Calendar.getInstance();
          Calendar c2 = Calendar.getInstance();
          c1.setTime(d1);
          c2.setTime(d2);
          // 保證第二個(gè)時(shí)間一定大于第一個(gè)時(shí)間
          if(c1.after(c2)){
          c1 = c2;
          c2.setTime(d1);
          }
          int betweenYears = c2.get(Calendar.YEAR)-c1.get(Calendar.YEAR);
          betweenDays = c2.get(Calendar.DAY_OF_YEAR)-c1.get(Calendar.DAY_OF_YEAR);
          for(int i=0;i<betweenYears;i++){
          c1.set(Calendar.YEAR,(c1.get(Calendar.YEAR)+1));
          betweenDays += c1.getMaximum(Calendar.DAY_OF_YEAR);
          }
          return betweenDays;
          }

          }

          posted on 2008-09-24 16:58 冶人 閱讀(5690) 評(píng)論(9)  編輯  收藏

          評(píng)論

          # re: java中計(jì)算兩日期間隔天數(shù)的簡(jiǎn)單示例 2008-11-03 10:17 JShare

          VERYGOOD!  回復(fù)  更多評(píng)論   

          # re: java中計(jì)算兩日期間隔天數(shù)的簡(jiǎn)單示例 2008-11-06 21:46 11

          如果我兩個(gè)日期之間相差10000年,這個(gè)程序的工作量也太大了吧。  回復(fù)  更多評(píng)論   

          # re: java中計(jì)算兩日期間隔天數(shù)的簡(jiǎn)單示例[未登錄](méi) 2008-11-07 09:58 冶人

          @11

          你那是特殊情況,任何代碼都不是萬(wàn)能的

          我們只處理一般情況  回復(fù)  更多評(píng)論   

          # re: java中計(jì)算兩日期間隔天數(shù)的簡(jiǎn)單示例[未登錄](méi) 2009-01-07 15:23 TEST

          如果出現(xiàn)潤(rùn)年
          2011年12月1-2012年1月1,多加了一天  回復(fù)  更多評(píng)論   

          # re: java中計(jì)算兩日期間隔天數(shù)的簡(jiǎn)單示例[未登錄](méi) 2009-01-07 15:28 TEST

          @TEST
          Sorry,搞錯(cuò),抱歉
            回復(fù)  更多評(píng)論   

          # re: java中計(jì)算兩日期間隔天數(shù)的簡(jiǎn)單示例 2010-09-17 10:09 act

          你的算法不準(zhǔn)且慢,試試這個(gè)
          public static int getBetweenDays(String t1,String t2) throws ParseException{
          DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
          return new Long((format.parse(t1).getTime()-format.parse(t2).getTime())/(1000 * 60 * 60 * 24)).intValue();

          }  回復(fù)  更多評(píng)論   

          # re: java中計(jì)算兩日期間隔天數(shù)的簡(jiǎn)單示例 2010-09-18 12:40 冶人

          @act

          算法是慢點(diǎn) 應(yīng)該不會(huì)不準(zhǔn)的吧
          不過(guò)你那個(gè)方法的確簡(jiǎn)潔 先收藏了
          (format.parse(t1).getTime()-format.parse(t2).getTime() 間隔一年的話,這個(gè)數(shù)據(jù)就非常大了 如果多年,會(huì)不會(huì)有異常?當(dāng)然,我只是假設(shè)。沒(méi)測(cè)試  回復(fù)  更多評(píng)論   

          # re: java中計(jì)算兩日期間隔天數(shù)的簡(jiǎn)單示例[未登錄](méi) 2011-09-21 09:11 aaa

          2011-12-01 ----2012-01-31 不準(zhǔn)確啊間隔多算了一天。  回復(fù)  更多評(píng)論   

          # re: java中計(jì)算兩日期間隔天數(shù)的簡(jiǎn)單示例 2013-05-20 19:41 twlkyao

          如果不是同一個(gè)月的結(jié)果不正確。  回復(fù)  更多評(píng)論   


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2009年1月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 衡水市| 海淀区| 宁德市| 宜章县| 个旧市| 北碚区| 鄯善县| 潜山县| 云阳县| 同德县| 扎赉特旗| 洪湖市| 瑞丽市| 崇信县| 连城县| 宜春市| 离岛区| 沙坪坝区| 临西县| 天峻县| 庆城县| 唐河县| 盘锦市| 思茅市| 铜梁县| 沂源县| 宕昌县| 年辖:市辖区| 广水市| 新巴尔虎右旗| 开封市| 方正县| 宜州市| 竹北市| 牙克石市| 万年县| 修武县| 横峰县| 始兴县| 临湘市| 巩义市|