【发布时间】:2022-01-20 20:37:33
【问题描述】:
我想获取从任何选定日期开始的接下来 30 天的备用日期的 TimeInMillis 值。我尝试使用 for 循环获取日期的值。但是代码总是将最后 3 个日期返回为错误的。有没有其他更好的方法来获得我正在做的事情?
fun calculateDates(startDate: Long) {
val singeDateDifference = 86400000
val cancelledDates = arrayListOf<Long>()
for (i in 2..30 step 2) {
val difference = i * singeDateDifference
cancelledDates.add(startDate + difference)
}
}
我得到的答案是这个。我已将 Long 值记录为日期以便更好地理解。
startDate: 01/01/2022
[02/01/2022, 04/01/2022, 06/01/2022, 08/01/2022, 10/01/2022, 12/01/2022, 14/01/2022, 16/01/2022, 18/01/2022, 20/01/2022, 22/01/2022, 24/01/2022, 07/12/2021, 09/12/2021, 11/12/2021]
我总是得到上个月的最后 3 个日期。我无法弄清楚代码有什么问题。
【问题讨论】:
-
顺便说一句,日子并不总是 24 小时。天数可以是 23、23.5、25 或其他小时数。
标签: android date kotlin datetime calendar