我一直想知道为什么我的代码有问题,我发现了可能的错误。
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 2017
D / DayLayout:firstDate.time - 2017年1月1日09:49:04 2017
D / DayLayout:第6天之后的第二天
第二次调用,几秒后
D / DayLayout:date arg - Sun Jan 08 09:49:04 2017
D / DayLayout:firstDate.time - 2017年1月1日09:49:04 2017
D / DayLayout:第7天之后的第二天
怎么可能呢?我遗漏了一些东西,使用相同参数的函数应返回相同的值。
答案 0 :(得分:2)
我遗漏了一些东西,具有相同参数的函数应返回相同的值。
但你并没有用相同的价值来称呼它。你用两个不同的值来调用它。
首先,您要比较这两个日期:
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
只看时代,似乎很明显为什么第一次调用会给出第二次调用的不同答案 - 因为它们之间有不同的天数。看看时代。在第一个中,您距离firstDate
是6天,23小时和53秒。在第二天,你完全 7天。