以下是Java代码实现:

public static int dayOfYear(int year, int month, int day) {
    int[] daysOfMonth = {31,28,31,30,31,30,31,31,30,31,30,31}; // 每个月份的天数
    int days = 0;
    for (int i = 1; i < month; i++) {
        days += daysOfMonth[i-1];
        if (i == 2 && isLeapYear(year)) { // 闰年2月份加1天
            days++;
        }
    }
    days += day;
    return days;
}

public static boolean isLeapYear(int year) { // 判断是否为闰年
    return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}

函数dayOfYear接收三个参数:年、月、日,返回该日是该年的第几天。首先定义一个数组daysOfMonth存储每个月份的天数,然后遍历1到该月份的前一个月,累加天数。在2月份需要判断是否为闰年,如果是闰年则加1天。最后再加上该天的天数,返回总天数即可。

函数isLeapYear用于判断是否为闰年,根据闰年的定义,能被4整除但不能被100整除的年份和能被400整除的年份都是闰年。

Java 计算某天是该年的第几天

原文地址: https://www.cveoy.top/t/topic/oaee 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录