JAVA 比較兩個日期相差的天數


  在實際的應用中,我們經常會比較兩個日期相差的天數,下面我們通過java方法判斷兩個日期所差的額天數。    

      具體內容,請看下面的代碼:

     

package com.jd.jr.fclient.test;

import org.junit.Test;

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

/**
 * 日期測試類
 *
 * @author zhanghao10@jd.com
 * @since 2016/3/18 0018
 */

public class DateTest {


    /**
     *  使用Calendar類 輔助完成天數的差值
     *  在不涉及到跨年的情況,此種方法是沒問題的
     *  但是設計跨年的情況,此種方法回出問題的哦
     *
     * 如果時間為:2016-03-18 11:59:59 和 2016-03-19 00:00:01的話差值為 1
     *
     * @throws ParseException
     */
    @Test
    public void daysOfTwo_1() throws ParseException {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        //跨年的情況會出現問題哦
        //如果時間為:2016-03-18 11:59:59 和 2016-03-19 00:00:01的話差值為 1
        Date fDate=sdf.parse("2015-12-31");
        Date oDate=sdf.parse("2016-01-01");
        Calendar aCalendar = Calendar.getInstance();
        aCalendar.setTime(fDate);
        int day1 = aCalendar.get(Calendar.DAY_OF_YEAR);
        aCalendar.setTime(oDate);
        int day2 = aCalendar.get(Calendar.DAY_OF_YEAR);
        int days=day2-day1;
        System.out.print(days);
    }

    /**
     * 通過毫秒值,手動計算日期間的相關的值
     *
     * 跨年不會出現問題
     * 使用此種方法的話需要注意
     * 如果時間為:2016-03-18 11:59:59 和 2016-03-19 00:00:01的話差值為 0
     *
     * @throws ParseException
     */
    @Test
    public void daysOfTwo_2() throws ParseException {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        //跨年不會出現問題
        //如果時間為:2016-03-18 11:59:59 和 2016-03-19 00:00:01的話差值為 0
        Date fDate=sdf.parse("2015-12-31");
        Date oDate=sdf.parse("2016-01-01");
        long days=(oDate.getTime()-fDate.getTime())/(1000*3600*24);
        System.out.print(days);
    }




}

 

  

  

  大家可以根據實際的需要選擇對應的計算方法即可。

     下面附上JS計算兩個日期的相差天數的值計算方法:

     

var date1=new Date();  //開始時間
alert("aa");
var date2=new Date();    //結束時間
var date3=date2.getTime()-date1.getTime()  //時間差的毫秒數
 

//計算出相差天數
var days=Math.floor(date3/(24*3600*1000))
 
//計算出小時數

var leave1=date3%(24*3600*1000)    //計算天數后剩余的毫秒數
var hours=Math.floor(leave1/(3600*1000))
//計算相差分鍾數
var leave2=leave1%(3600*1000)        //計算小時數后剩余的毫秒數
var minutes=Math.floor(leave2/(60*1000))
 

//計算相差秒數
var leave3=leave2%(60*1000)      //計算分鍾數后剩余的毫秒數
var seconds=Math.round(leave3/1000)
 

alert(" 相差 "+days+"天 "+hours+"小時 "+minutes+" 分鍾"+seconds+" 秒")

 

  

 

     好吧,就先到這里吧

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM