Java基础50道经典练习题(14)——求日期

【程序 14 求日期】
题目:输入某年某月某日,判断这一天是这一年的第几天?
 
程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,
闰年且输入月份大于 3 时需考虑多加一天。
 
源码:
package com.homework.test;
import java.util.*;
/*
【程序 14 求日期】
题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,
闰年且输入月份大于 3 时需考虑多加一天。

 */
public class Test14 {
    public static void main(String [] args){
        Scanner scan = new Scanner(System.in).useDelimiter("\D"); //匹配非数字
        System.out.println("请输入日期(年-月-日):");
        int year = scan.nextInt();
        int month = scan.nextInt();
        int date = scan.nextInt();
        scan.close();

        System.out.println("该天是本年中的第"+fun(year,month,date)+"天");

    }

    public static int fun(int Y,int M, int D){
        int n = 0;
        int[] month_day = new int[]{31,28,31,30,31,30,31,31,30,31,30,31};
        if ((Y % 400 == 0) || ((Y % 4 == 0) && (Y % 100 != 0)))
            month_day[1] = 29;

        for (int i=0; i<M; i++){
            n += month_day[i];
        }
        return n+D;
    }

}

  

原文地址:https://www.cnblogs.com/lcpp/p/13050937.html