java计算剩余天数_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+" 秒")

好吧,就先到这里吧

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值