(java语言)今天是第几天?输入年、月、日,计算该天是本年的第几天 ?

(java语言)今天是第几天?输入年、月、日,计算该天是本年的第几天 ?

题目来自牛客网:

- 题目描述:

包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)

- 输出描述

输出可能有多组测试数据,对于每一组测试数据, 输出一个整数,代表Input中的年、月、日对应本年的第几天。

- 实例
输入: 1990 9 20 20 5 1 .。。。。
输出:
263
122
注 : 掌握String类中的split()拆分方法,闰年的判别方法year % 4 == 0 && year % 100 !=0 || year % 400 == 0
代码实现:

import java.util.Scanner;

public class Main {
    public static  void main(String[] args){
        //判断某一天是当年的第几天
        Scanner in = new Scanner(System.in);
        //这里的输入格式是1990 9 20 2000 5 1... 在一行
        String input = in.nextLine();
        String[] arrs = input.split(" ");//通过空格拆分
        //System.out.println(Arrays.toString(arrs));
        int year = 0,day = 0,month = 0;
        int index = 0;
        for (int i = 0; i < arrs.length/3; i++) {//拆开,每三个是一组
            year = Integer.parseInt(arrs[3*i+0]);
            month = Integer.parseInt(arrs[3*i+1]);
            day = Integer.parseInt(arrs[3*i+2]);
            int num = findNumberOfDays(year,month,day);
            System.out.println(num);
        }
    }
    //计算天数
    public static int findNumberOfDays(int year,int month,int day){
        //定义数组,表示每个月应该加多少
        int[] days = {0,31,28,31,30,31,30,31,31,30,31,30,31};
        int num = 0;
        for(int x = 0;x < month; x++){//算月的天数
            num += days[x];
        }
        num = num +day;//加上日的天数
        if (year % 4 == 0 && year % 100 !=0 || year % 400 == 0) {
            if(month > 3){ // 闰年二月多的一天
                num++;
            }
        }
        return num;
    }

}

发布了11 篇原创文章 · 获赞 8 · 访问量 1588

猜你喜欢

转载自blog.csdn.net/weixin_44627238/article/details/93617975