查找两个日期之间的时差,最长可达数年


private String getTimeDiff(Date D1, Date D2){
    ...
    return diffString;
}

我想创建一个函数,它接受两个java.util.date对象并通过以下方式返回差异:

-

-> 如果时差超过一年,则只返回年差(如5年(

-

-> 如果不到一年但超过一个月,它应该只返回月差(如 2 个月(

-

-> 以此类推,表示天、小时、分钟、秒

这将用于填充良好的列表视图项,因此我正在寻找一种能够以最少的处理提供结果的解决方案。

谢谢

long t1 = d1.getTime();
long t2 = d2.getTime()
long diff = Math.abs(t1-t2);
int years = diff %(365*24*60*60*1000);
if(years >0){
  return ""+years+" years";
}
int months = diff%(30*24*60*60*1000);
if(months>0){
  return ""+months+" months";
}

并重复数周,数天,数小时等。 使用命名常量作为长度,我只是懒惰。

最新更新