<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    yerenzyy

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

    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 冶人 閱讀(5684) 評論(9)  編輯  收藏

    評論

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

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

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

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

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

    @11

    你那是特殊情況,任何代碼都不是萬能的

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

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

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

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

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

    # re: java中計(jì)算兩日期間隔天數(shù)的簡單示例 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ù)  更多評論   

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

    @act

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

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

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

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

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


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


    網(wǎng)站導(dǎo)航:
     
    <2010年9月>
    2930311234
    567891011
    12131415161718
    19202122232425
    262728293012
    3456789

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(1)

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 精品久久久久久亚洲精品| 免费一区二区无码视频在线播放| 女人18毛片水真多免费播放| 日本高清不卡中文字幕免费| 亚洲一区综合在线播放| 99精品全国免费观看视频 | 亚洲人成电影网站国产精品| 国产日韩一区二区三免费高清 | 久久免费99精品国产自在现线| 久久亚洲AV无码精品色午夜麻豆 | 免费阿v网站在线观看g| 免费VA在线观看无码| 亚洲精品在线免费观看| 亚洲精品第一国产综合境外资源| 99久久国产免费-99久久国产免费| 色五月五月丁香亚洲综合网| 亚洲国产第一页www| 国产乱子伦精品免费女| 久久精品一本到99热免费| 朝桐光亚洲专区在线中文字幕| 久久精品国产亚洲AV麻豆~| 四虎免费久久影院| 99久久免费国产精品特黄| 青柠影视在线观看免费高清| 欧美色欧美亚洲另类二区| 亚洲视频一区在线| 国产精品亚洲а∨无码播放| 全部免费毛片免费播放| 成人免费视频69| 久久久久久久久久国产精品免费| 麻豆69堂免费视频| 一区二区亚洲精品精华液 | 97se亚洲综合在线| 中文字幕第一页亚洲| 日本免费一区二区三区最新| 成人免费视频69| 8090在线观看免费观看| a级片免费在线播放| 特级aa**毛片免费观看| 亚洲色大成网站www尤物| 亚洲国产精品成人久久久|