Java输入某年某月某日,判断这一天是这一年的第几天?

分析:大家都知道,每年的总共日期,要么就是365天,要么就是366天,具体是取决于闰年还是平年,更确切的说就是每年二月是28天还是29天,归结到这个问题,有一个关键的认识点,就是求解这一年是闰年(366天)还是平年(365天)。

平年还是闰年计算算法:(1)年份能被4整除,但不能被100整除;(2)能被400整除  

下面给出具体算法:

package test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * 题目:输入某年某月某日,判断这一天是这一年的第几天?
 */
public class NaYiTian {
    public static void main(String[] args){
        BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
        try {
            //录入键盘的数据
            String str=bf.readLine();
            //分割年月日
            String[] strArr=str.split("-");
            int year=Integer.parseInt(strArr[0]);
            int month=Integer.parseInt(strArr[1]);
            int towMonth=28;
            //判断平年还是闰年
            if((year%4==0&&year%100!=0)||(year%400==0)){
                towMonth=29;//闰年多一天
            }
            int totalDay=0;
            int[] months={31,towMonth,31,30,31,30,31,31,30,31,30,31};
            //前几个月加上本月的天数
            for(int i=0;i=i+1){
                    if(month==i+1){
                        totalDay+=Integer.parseInt(strArr[2]);
                        break;
                    }else{
                        totalDay+=months[i];
                    }
                }
            }
            //输出结果
            System.out.println(totalDay);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

每天进步一点点,更多精彩内容,欢迎关注公众号“编程社”!!!

 

 

 

 

 

你可能感兴趣的:(算法,Java)