【问题标题】:Kotlin Date.daysAfter function different return value with the same argumentsKotlin Date.daysAfter 函数具有相同参数的不同返回值
【发布时间】:2017-01-08 14:52:29
【问题描述】:

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

    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:日期 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:日期 arg - Sun Jan 08 09:49:04 EST 2017

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

D/DayLayout:后天 - 7

这怎么可能?我遗漏了一些东西,具有相同参数的函数应该返回相同的值。

【问题讨论】:

    标签: android date kotlin


    【解决方案1】:

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

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

    首先,您正在比较这两个日期:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 2012-06-24
      • 2019-12-18
      相关资源
      最近更新 更多