我是kotlin的新手,我想知道是否可以执行以下操作...
我想在每个月的第一天调用一个方法,我发现了this并看到了几个这样的示例:
timer.schedule(1000) {
println("hello world!")
}
我想知道是否可以使用(而不是固定时间)日历日?像本月初一样?
答案 0 :(得分:0)
没有内置的方法。
如果一天中的确切时间无关紧要,那么一种方法是安排一个任务每24小时执行一次,并检查当前时间是否为每月的第一天,如果是,则执行任务。
(**在夏令时开始或结束时,它会稍微漂移,或者增加leap秒,但这可能并不重要。)
一种更强大(但更复杂的方法)是将计时器设置为在下个月的1月1日适当的时间关闭一次。然后,在执行任务后,它可以将自己重新安排在下个月的1号。 (即使任务引发异常,您也需要始终确保这样做。)
您可以将所有这些放到自己的计时器类中,以将其与要运行的业务逻辑分开。
有关Java中的示例(将直接转换为Kotlin / JVM),请参见the answers to these questions。