欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

求年积日

程序员文章站 2022-05-04 13:52:38
题目:输入某年某月某日,判断这一天是这一年的第几天?程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,闰年且输入月份大于 我们可以把各个月份的天数存入数组里面,然后根据输入的月份去遍历数组,只是数组索引从0开始,比输入的月份少1,遍历时候需注意, ......

题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以 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 时需考虑多加一天