Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 查找两个日期之间长达年的时间差_Android_Algorithm_Date - Fatal编程技术网

Android 查找两个日期之间长达年的时间差

Android 查找两个日期之间长达年的时间差,android,algorithm,date,Android,Algorithm,Date,我想创建一个函数,它接受两个java.util.date对象,并以以下方式返回差异: -->如果时差超过一年,则应返回年差(如5年) -->如果不到一年但超过一个月,它应该只返回月差(如2个月) -->以此类推,持续数天、数小时、数分钟、数秒 这将在填充良好的listview项目中使用,因此我正在寻找一种解决方案,该解决方案将以最少的处理给出结果。 谢谢 private String getTimeDiff(Date D1, Date D2){ ... return diffSt

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

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

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

-->以此类推,持续数天、数小时、数分钟、数秒

这将在填充良好的listview项目中使用,因此我正在寻找一种解决方案,该解决方案将以最少的处理给出结果。

谢谢

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

重复数周、数天、数小时等。使用命名常量表示长度,我只是在偷懒。

不,Java的长度是64位(所以最大长度是2^63-1)。普通C++实现使用32位长,但即使不是强制的(C++中唯一的规则是long > int > =短> char,实际大小不必强制某些值)。谢谢你的回答
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";
}