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天。