获取当前月天数以及确定每月第一天是周几

这段代码提供了两个函数,用于计算指定月份的天数和该月第一天是星期几。`getMonthOfDay`函数根据闰年规则判断二月的天数,并根据月份返回其它月份的天数。`aculateWeekDay`函数利用Zeller's congruence计算每月第一天的星期几。这两个函数对于日期处理和日历应用非常有用。
摘要由CSDN通过智能技术生成

获取当前月天数以及确定每月第一天是周几

确定一月多少天

/**
     * 确定一月多少天
     *
     * @param year
     * @param month
     * @return
     */
    fun getMonthOfDay(year: Int, month: Int): Int {
        val day: Int = if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) 29 else 28

        when (month) {
            1, 3, 5, 7, 8, 10, 12 -> return 31
            4, 6, 9, 11 -> return 30
            2 -> return day
        }
        return 0
    }

确定每月第一天是周几

 /**
     * 确定每月第一天是周几
     *
     * @param y
     * @param m
     * @param d
     * @return
     */
    private fun caculateWeekDay(y: Int, m: Int, d: Int): Int {
        var y = y
        var m = m
        if (m == 1 || m == 2) {
            m += 12
            y--
        }
        val iWeek = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7
        return when (iWeek) {
            0 -> 2
            1 -> 3
            2 -> 4
            3 -> 5
            4 -> 6
            5 -> 7
            6 -> 1
            else -> 0
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值