import java.util.Scanner;

public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入年份:"); int year = scanner.nextInt(); System.out.println("请输入月份:"); int month = scanner.nextInt(); System.out.println("请输入日期:"); int day = scanner.nextInt(); int daysOfYear = getDaysOfYear(year, month, day); System.out.println(year + "年" + month + "月" + day + "日是" + year + "年的第" + daysOfYear + "天"); }

/**
 * 计算一个日期是这一年的第几天
 * @param year 年份
 * @param month 月份
 * @param day 日期
 * @return 这一年的第几天
 */
public static int getDaysOfYear(int year, int month, int day) {
    int days = 0;
    for (int i = 1; i < month; i++) {
        days += getDaysOfMonth(year, i);
    }
    days += day;
    return days;
}

/**
 * 计算某年某月的天数
 * @param year 年份
 * @param month 月份
 * @return 天数
 */
public static int getDaysOfMonth(int year, int month) {
    int days = 0;
    switch (month) {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            days = 31;
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            days = 30;
            break;
        case 2:
            if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
                days = 29;
            } else {
                days = 28;
            }
            break;
        default:
            break;
    }
    return days;
}

}

用java写判断这一天是这一年的第几天?输入某年某月某日判断这一天是这一年的第几天?

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

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