【问题标题】:Kotlin: How to detect 'date change'?Kotlin:如何检测“日期更改”?
【发布时间】:2023-01-02 00:36:27
【问题描述】:

我将使用 Timer() 在 Kotlin 中执行 5 分钟的函数。

当我执行函数 5 米时,如果一天过去了,我希望 count var 为 0。

所以我的想法是

  1. 声明两个vars。
    • var todayDate = LocalDate.now() // 2019-09-23
    • var todayCount :Int = 0
    1. 之后,我将使用 Timer() 在 5 分钟内检查此变量。

    然后todayDate 值与之前的todayDate 不同,然后我可以检测到日期更改。

    但是,我不知道如何比较当前的今天日​​期和前一天的日期。

    任何的想法?或者有没有其他方法可以知道日期的变化?

【问题讨论】:

标签: kotlin


【解决方案1】:

对于您关于比较日期的具体问题,您可以在您的LocalDate实例(docs)上使用isEqual()方法。像下面这样的东西可能会做你想做的事:

// initial state
var todayDate = LocalDate.now()
var todayCount = 0

// in each timer iteration:
val now = LocalDate.now()
if (!todayDate.isEqual(now)) {
  // it's a new day
  todayCount = 0
  todayDate = now
} else {
  // it's the same day
  ++todayCount
}

然而如果你在谈论 Android 并使用它的 Timer 类,你需要知道它在后台线程上运行,你需要在某处保留你的 todayDate 和 todayCount 值(可能是应用程序首选项,您的应用数据库等)。

【讨论】:

    猜你喜欢
    • 2016-11-28
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    相关资源
    最近更新 更多