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

【程序 14 求日期】
题目:输入某年某月某日,判断这一天是这一年的第几天?
 
程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,
闰年且输入月份大于 3 时需考虑多加一天。
 
源码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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;
    }
 
}

  

posted on   lifelicanpeng  阅读(432)  评论(0编辑  收藏  举报

努力加载评论中...

导航

点击右上角即可分享
微信分享提示