求年积日

Posted doudou2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求年积日相关的知识,希望对你有一定的参考价值。

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



以上是关于求年积日的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器