如何计算俩日期相隔多少年,多少月,多少天或者两时间相差XX年XX月XX日

假设时开始时间为2015年4月2日,结束时间为2019年4月4月;

 需要先熟悉一下时间对象得一些方法,可参考教程http://www.w3school.com.cn/jsref/jsref_obj_date.asp

需要将上述时间转换为时间对象,通过new Date()实现;

     let startDate = new Date(2015,3,2);         2015/4/2

     let endDate = new Date(2019,3,4);       2019/4/4

  //得出两时间的年

     let startYear =  startDate.getFullYear() ; 2015

     let endYear =  endDate.getFulllYear(); 2019

一、计算出时间相隔多少月

   相差月 = 结束时间总月数 - 开始时间得总月数 

   总月数 = XXXX年 * 12 + 当前多少月;

     2015年4月2日总月数   let startMonths = startYear * 12 + startDate.getMonth() + 1  = 24184;

     2019年4月4日总月数    let endMonths = endYear * 12 + endDate.getMonth() + 1 = 24232;

     let intervalMonths =  endMonths - startMonths = 24232 - 24184 = 48个月;

     算出相差月数,则还存在时间天差,则:

     let gapDays = endDate.getDate() - startDate.getDate() = 4 - 2 = 2天;

     则最后结果为: 相差48个月零3天;

二、计算俩时间相隔多少年

    相差年 = Math.floor((相差总月数 / 12))+ 相差总月数 % 12;

     let intervalYears = Math.floor(48 / 4) + (48 %12)= 4;

     相差4年

三、计算出两时间相差多少天;

   相差得天数 = 2019年4月4日的总天数 - 2015年4月2日的总天数  ;

   总天数 =  当前时间绝对毫秒数 / 天总毫秒数  天总毫秒数 = 24 * 60 * 60 * 1000 = 86400000

   let startDays = startDate.getTime() /  86400000;

  let endDays = endDate.getTime() / 86400000;

   let intervalDays = endDays - startDays = 17989 - 16526 = 1463;

   则相差1463天;

四、计算两时间相差XX年XX月XX天

     相差得年月 = Math.floor(48 / 12) + 48 % 12 = 4年0月;

     相差得天数 = endDate.getDate() - startDate.getDate() = 4 - 2 = 2天;

     则相差4年零2天。

      

 

   

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算两个日期之间相隔多少天,可以使用Java中的Date类和Calendar类。下面是一个示例代码: ```java import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateDemo { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String dateStr1 = "2021-01-01"; String dateStr2 = "2021-02-01"; try { Date date1 = sdf.parse(dateStr1); Date date2 = sdf.parse(dateStr2); Calendar cal1 = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance(); cal1.setTime(date1); cal2.setTime(date2); long diff = (cal2.getTimeInMillis() - cal1.getTimeInMillis()) / (1000 * 60 * 60 * 24); System.out.println("相隔天数:" + diff); } catch (Exception e) { e.printStackTrace(); } } } ``` 上述代码中,我们首先创建了一个SimpleDateFormat对象,用于将字符串日期转换为Date类型。然后,我们使用Calendar类计算两个日期之间的时间差,最后将时间差转换为天数。 如果要计算两个日期之间的相差天数,可以使用Java 8中的新API,如下所示: ```java import java.time.LocalDate; import java.time.Period; public class DateDemo { public static void main(String[] args) { LocalDate date1 = LocalDate.of(2021, 1, 1); LocalDate date2 = LocalDate.of(2021, 2, 1); Period period = Period.between(date1, date2); int diff = period.getDays(); System.out.println("相差天数:" + diff); } } ``` 上述代码中,我们使用了Java 8中的LocalDate和Period类,计算了两个日期之间的相差天数。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值