kotlin - 如何以紧凑的方式编写一个使用很多 Calendar 的 set 方法的方法
问题描述
我有以下代码来获取日期的差异。但是,由于我是 kotlin 的新手,所以我不知道以更小/紧凑的方式编写以下代码的任何其他方法......有没有办法让这个大代码变小?一些示例代码或提示会很可爱!我很想听听你的意见!
fun getDiffWeek(year1: Int, month1: Int): Int {
return getDiffWeek(year1, month1, 1)
}
fun getDiffWeek(year1: Int, month1: Int, day1: Int): Int {
val calendar = GregorianCalendar.getInstance() as GregorianCalendar
calendar.set(Calendar.YEAR, year1)
calendar.set(Calendar.MONTH, month1 - 1)
calendar.set(Calendar.DAY_OF_MONTH, day1)
calendar.set(Calendar.HOUR_OF_DAY, 0)
calendar.set(Calendar.MINUTE, 0)
calendar.set(Calendar.SECOND, 0)
calendar.set(Calendar.MILLISECOND, 0)
val currCalendar = GregorianCalendar.getInstance() as GregorianCalendar
currCalendar.timeInMillis = System.currentTimeMillis()
currCalendar.set(Calendar.HOUR_OF_DAY, 0)
currCalendar.set(Calendar.MINUTE, 0)
currCalendar.set(Calendar.SECOND, 0)
currCalendar.set(Calendar.MILLISECOND, 0)
val diffTime = calendar.timeInMillis - currCalendar.timeInMillis
return if (diffTime < 0) {
-1
} else Math.ceil(diffTime / ONE_WEEK.toDouble()).toInt()
}
解决方案
推荐阅读
- python - Discord.py 根据空设置检查条件
- reactjs - React Input 元素不应从不受控切换到受控(反之亦然)
- javascript - 如何使用Javascript计算一般树中的孩子的总和
- c# - 如何通过通用类/列表循环
- android - Android Studio 图书搜索 Google API
- django - 上下文处理器:如何在所有视图中编写登录和注册
- apache - 带有注释的 Symfony 5 路由不适用于 Apache 和 Docker
- python - GraphQL 在 Django 中的一个请求中进行多个查询
- javascript - 收到响应但没有数据写入 STDOUT 或 STDERR。(代码战争)...?
- windows - 了解文件系统过滤器/微过滤器