求年积日

Posted on 2018-08-07 22:07  豆豆2018  阅读(364)  评论(0编辑  收藏  举报

题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,
闰年且输入月份大于

package SuanFa;

import java.util.Scanner;

public class Demo14 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //年积日问题  1 3 5 7 8 10 12
        //31 28 31 30 31 30 31 31 30 31 30 31  
        fucntion();
    }
    public static void fucntion() {
        Scanner sc=new Scanner(System.in);
        //输入年月日
        System.out.println("请输入年份:");
        int year=sc.nextInt();
        System.out.println("请输入月份:");
        int month=sc.nextInt();
        System.out.println("请输入日期:");
        int day=sc.nextInt();
        //判断闰年
        if (month>2) {
            
            if (year%4==0&&year%100!=0||year%400==0) {//判断闰年条件
                day=day+1;
            }else {
                day=day;
            }
        }
        
        int _dayCount=0;//对应月份之前总天数
        int dayCount=0;//总和天数
        
        int[]monthNum={31,28,31,30,31,30,31,31,30,31,30,31};//每个月对应的时间天数
        for (int i = 0; i < month-1; i++) {
            _dayCount=_dayCount+monthNum[i];//统计月份天数和
        }
        dayCount=day+_dayCount;
        System.out.println("总天数为:"+dayCount);
        
    }
}

我们可以把各个月份的天数存入数组里面,然后根据输入的月份去遍历数组,只是数组索引从0开始,比输入的月份少1,遍历时候需注意,遍历同时我们可以做一个累加

其次注意有闰年之分,在遍历之前先判断是否是闰年,然后如果闰年涉及到2月以后的月份,天数都要+1,而2月之前不变。

总体思路是先输入3.5 先把3月份以前的每个月天数和求出,这里我是放在数组里面遍历求和,也可以提前把月份对应天数和求出来,加上对应的天数即可。

 

3 时需考虑多加一天