首页 > 解决方案 > 如何以紧凑的方式编写一个使用很多 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()

    }

标签: kotlin

解决方案


推荐阅读