【发布时间】:2019-01-04 15:24:26
【问题描述】:
我有一个 Kotlin 函数来获取一个月的总周数
代码
fun getTotalWeeksInMonth(instant: Instant): Int {
val calendar = Calendar.getInstance()
calendar.time = Date.from(instant)
return calendar.getActualMaximum(Calendar.WEEK_OF_MONTH)
}
但是,这是混合使用旧的 Java 日期/时间 API(Date 和 Calendar)和新的 API(Instant)
仅使用新的 API,我将如何获得相同的结果?
【问题讨论】:
-
"defined as such" ...你还没有定义任何东西。你想要什么?什么是“一个月的总周数”?
-
@Michael 例如,2019 年 1 月跨越 5 周,但我不想使用已弃用的 API 找出这一点
-
@deHaar 这正是问题所在。
-
@series0ne 好吧,你对一周的定义是什么?英国使用星期一作为一周的开始,美国使用星期日。
-
@Michael 假设您想找到 2019 年 1 月的最后一个星期日。那是 27 日。但是假设你想找到 2019 年 1 月的第 5 个星期日。那个日期不存在,因为 2019 年 1 月只有 4 个星期日。但是同样不适用于 2019 年 3 月,因为有五个星期日,所以我需要一个函数来确定该月有多少周? - 除非你能想出更好的方法来做到这一点?
标签: java datetime kotlin java-8 date