如何编写一种紧凑地使用许多Calendar设置方法的方法

时间:2019-04-11 01:40:54

标签: kotlin

我有以下代码来获取日期差。但是,由于我是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()

    }

0 个答案:

没有答案