Kotlin Date.days使用相同的参数

时间:2017-01-08 14:52:30

标签: android date kotlin

我一直想知道为什么我的代码有问题,我发现了可能的错误。

    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天之后的第二天

怎么可能呢?我遗漏了一些东西,使用相同参数的函数应返回相同的值。

1 个答案:

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