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

时间:2015-03-22 18:11:17

标签: android algorithm date

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

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

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

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

- >等等天,小时,分钟,秒......

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

三江源

1 个答案:

答案 0 :(得分:1)

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";
}

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