输入某年某月某日,判断这一天是这一年的第几天?

23 篇文章 0 订阅
18 篇文章 0 订阅

/**
 * 33.输入某年某月某日,判断这一天是这一年的第几天?
 */
import java.util.Scanner;

public class P33 {
/**
 *
 * 方法描述:判断某年某月有多少天
 * @param year
 * @param month
 * @return
 */
    private static int MouthDay(int year,int month){
        int days=0;
        switch (month) {
        
        case 1: case 3: case 5: case 7: case 8: case 10: case 12: { days = 31; break; }
        case 4: case 6: case 9: case 11: { days = 30; break; }
        case 2: {
        /**
                         * 闰年:①:非整百年数除以4,无余为闰,有余为平;②整百年数除以400,无余为闰有余平
                         * 二月:平年28天、闰年29天
                         */
         if ((year % 100 !=0 &&year % 4 == 0) || (year % 100 == 0 && year%400==0)) {
         days = 29; break;
         } else{
          days = 28; break;
          }
         } default: break;
         }
        return days;
    }
    public static void main(String[] args) {
        int year; int mouth; int day=0; int days;
        //累计天数
        int d=0; int e = 0;
        Scanner scanner = new Scanner(System.in);
        do { System.out.println("输入年:");
        year = scanner.nextInt();
        System.out.println("输入月:");
        mouth = scanner.nextInt();
        System.out.println("输入日:");
        days = scanner.nextInt();
        //判断输入日期格式是否正确
         if (mouth < 0 || mouth > 12 || days < 0 || days > P33.MouthDay(year, mouth)) {
        System.out.println("input error!");
        e = 1;
        }
         } while (e == 1);
        for (int i = 1; i <mouth; i++) {
        day= P33.MouthDay(year, mouth);
        d+=day;
        }
        System.out.println("这是"+year+"年的"+(d+days)+"天"); } }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值