Kotlin Date.daysAfter函数具有相同参数的不同返回值

我一直在想为什么我的代码是越野车,我发现了可能的错误。

fun daysAfter(date: Date): Int { Log.d("DayLayout", "date arg - $date") Log.d("DayLayout", "firstDate.time - " + firstDate.time.toString()) val ret = date.daysAfter(firstDate.time).toInt() Log.d("DayLayout", "day after - " + ret) return ret } 

首先调用给定的函数

D / DayLayout:date arg – Sun Jan 08 09:48:57 EST 2017

D / DayLayout:firstDate.time – Sun Jan 01 09:49:04 EST 2017

D / DayLayout:6天后

第二次调用,几秒后

D / DayLayout:date arg – Sun Jan 08 09:49:04 EST 2017

D / DayLayout:firstDate.time – Sun Jan 01 09:49:04 EST 2017

D / DayLayout:7天之后

那怎么可能呢? 我失去了一些东西,具有相同参数的函数应该返回相同的值。

我失去了一些东西,具有相同参数的函数应该返回相同的值。

但是你没有用相同的值来调用它。 你用两个不同的值来调用它。

首先,你是比较这两个日期:

 date arg - Sun Jan 08 09:48:57 EST 2017 ^^^^^ firstDate.time - Sun Jan 01 09:49:04 EST 2017 

然后你比较:

 date arg - Sun Jan 08 09:49:04 EST 2017 ^^^^^ firstDate.time - Sun Jan 01 09:49:04 EST 2017 

只是看时间,似乎很明显,为什么第一次调用与第二次调用给出了不同的答案 – 因为在它们之间有不同的天数。 看看时代。 在第一个日子里,你是6天,23小时,53秒。 在第二天,你恰好是 7天。