JAVA 比较两个日期相差的天数

时间:2023-03-09 17:20:36
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+" 秒")

  

好吧,就先到这里吧