码迷,mamicode.com
首页 > 其他好文 > 详细

求年积日

时间:2018-08-07 22:24:06      阅读:752      评论:0      收藏:0      [点我收藏+]

标签:时间   ack   ann   数组   code   eth   pack   int()   demo1   

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

求年积日

标签:时间   ack   ann   数组   code   eth   pack   int()   demo1   

原文地址:https://www.cnblogs.com/doudou2018/p/9439812.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!