Java計算兩個日期相差的天數

me87re 9年前發布 | 1K 次閱讀 Java

java根據開始時間和結束時間,計算中間天數,并打印

import java.text.SimpleDateFormat;
import java.util.Date;

public class Calcdate { static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); static SimpleDateFormat ymd = new SimpleDateFormat("yyyy-MM-dd");

public static void main(String[] args)throws Exception{
    Date beginTime = sdf.parse("2015-04-23 12:32:44");

// Date endTime = sdf.parse("2015-04-23 14:56:44"); Date endTime = sdf.parse("2015-04-29 14:56:44");

    long diff = (endTime.getTime() - beginTime.getTime()) / (86400 * 1000);
    System.out.println("diff = " + diff);

    Date sb = null;
    Date se = null;
    if(diff == 0){
        sb = beginTime;
        se = endTime;

        String ss = String.format("%d> Sb=%s, Se=%s", 1, Coder.DateTimeToStr(sb), Coder.DateTimeToStr(se));
        System.out.println(ss);
    }else {
        int i = 0;
        while (i <= diff) {
            if (i == 0) {
                sb = beginTime;
                se = sdf.parse(ymd.format(sb) + " 23:59:59");
            } else if (i == diff) {
                sb = sdf.parse(ymd.format(endTime) + " 00:00:00");
                se = endTime;
            } else {
                se = new Date(beginTime.getTime() + i * 24 * 60 * 60 * 1000);
                sb = sdf.parse(ymd.format(se) + " 00:00:00");
                se = sdf.parse(ymd.format(se) + " 23:59:59");
            }

            String ss = String.format("%d> Sb=%s, Se=%s", i, Coder.DateTimeToStr(sb), Coder.DateTimeToStr(se));
            System.out.println(ss);

            i++;
        }
    }
}

}</pre>

 本文由用戶 me87re 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!