输入一个年份和天数_判断这是哪一年的哪个月的第几天

   public void someday(int year, int day) {
        int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};  //不是闰年的时候,每个月代表的天数
        int temp = 0;
        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { //判断是否是闰年
            days[1] = 29;  //闰年2月是29天
            for (int i = 0; i < 12; i++) {
                temp = days[i] + temp;  //计算每天循环的天数
                if ((day - temp) <= 31) {    //根据我们传过来的天数 减去 前面几个月天数的总和                     可以得出是哪个月哪几天
                    System.out.println(year + "年是闰年,第" + (i + 1) + "月,第" + (day - temp) + "天");
                    break;
                }
            }
 
        } else {
            for (int i = 0; i < 12; i++) {
                temp = days[i] + temp;
                if ((day - temp) <= 31) {
                    System.out.println(year + "年不是闰年,第" + (i + 1) + "月,第" + (day - temp) + "天");
                    break;
                }
            }
        }
    }

写的不够严谨,如果有问题,请大家指正!

转载于:https://www.cnblogs.com/chenjiuli/p/10116291.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以通过计算输入日期与该年11日之间的天数差来确定这一天是这一年的第几天。具体步骤如下: 1. 首先,需要判断输入的年份是否为闰年。闰年的判断方法是:能被4整除但不能被100整除,或者能被400整除的年份为闰年。 2. 然后,根据输入的份和闰年与否,计算出该之前的天数总和。例如,如果输入的日期是2021年315日,则该之前的天数总和为31(1)+28(2,因为2021年不是闰年)+15(315日)=74天。 3. 最后,将该之前的天数总和加上输入的日期中的日数,即可得到这一天是这一年的第几天。例如,2021年315日是该年的第74+15=89天。 综上所述,可以通过以上方法来判断输入日期是这一年的第几天。 ### 回答2: 题目要求我们输入某年某某日,然后判断这一天是这一年的第几天。首先,我们可以通过闰年的规则来判断一年的天数。一般的,一年有365天,闰年有366天,而闰年是在以下两种情况中满足其一,即该年份能被4整除但不能被100整除,或者能被400整除。 我们可以先计算该之前的天数。假设输入的日期为某年的第n天,那么前n-1天之和就是该日期之前的天数。然后再判断年份是否是闰年,如果是并且该日期在二之后,那么天数需要加一。最后再加上这一天就是这一年的天数。 具体的算法可以用以下伪代码表示: 1. 输入年日 2. 根据年份计算是否是闰年:if (year能被4整除 且年份不能被100整除 或 年份能被400整除) 则是闰年,否则不是闰年 3. 定义一个数组days,存储天数 4. 计算该日期之前的总天数sum = 输入的日-1 5. for (i=1;i<month;i++) { sum = sum + days[i] } 6. 如果是闰年并且份大于2,那么天数加一:if (是闰年 && month>2) {sum = sum + 1} 7. 输出该日期是该年的第几天:sum = sum + day 最后,我们需要注意的是,输入的年日需要进行合法性检查,比如份不能超过12,日期不能超过该份的天数等。 ### 回答3: 要求输入一个日期,输出这天是这一年的第几天。我们可以采取以下步骤来判断: 1. 首先,从输入的年份开始,判断年份是不是闰年。可以通过判断年份能否被4整除,并且不能被100整除,或者能被400整除来确定。 2. 如果是闰年,则二份有29天,否则只有28天。 3. 然后,根据份确定该份前面的天数。需要注意的是,2份的天数需要根据是否是闰年来确定。 4. 最后,加上输入的日期,就可以得到该天是该年的第几天了。 下面是详细的判断过程: 1. 首先,判断年份是否是闰年: 如果该年份能被4整除,且不能被100整除,或者能被400整除,则该年是闰年。 2. 根据份确定该份前面的天数: 1:0天 2:如果是闰年,则为31天,否则为31天 3:59天(2份的天数+31天) 4:90天(3份的天数+30天) 5:120天(4份的天数+31天) 6:151天(5份的天数+30天) 7:181天(6份的天数+31天) 8:212天(7份的天数+31天) 9:243天(8份的天数+31天) 10:273天(9份的天数+30天) 11:304天(10份的天数+31天) 12:334天(11份的天数+30天) 3. 最后,加上输入的日期,就可以得到该天是该年的第几天了。 比如,输入2022年315日,则: 2022年是闰年,2份有29天,315日的天数为: 59(1份的天数)+29(2份的天数)+15(3份的日期)=103 因此,2022年315日是2022年的第103天。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值