判断这一天是这一年的第几天? 的三种方法! Java

2022-08-07,,,,

程序分析: 以3月5日为例,应该先把前两个月的加起来,然后再加.上5天即本年的第
几天。
特殊情况:闰年且输入月份大于3时需考虑多加一天。
闰年的条件: year除以400能整除,或者year除以4能整除,但是不能是100的倍数  分为三个方法
//方法一:
    static void getTotalDays(int year,int month,int day){
        int total = 0;//总天数
        for (int i = 1; i < month ; i++) {
            switch(i){
                case 1 : case 3: case 5: case 7: case 8: case 10: case 12: total +=31;break;
                case 4 : case 6: case 9: case 11:  total +=30;break;
                default: if (i==2){
                    if (year%4==0&&year%100!=0||year%400==0){
                        total+=29;
                    }else{
                        total+=28;
                    };break;
                }
            }
        }
        total+=day;
        System.out.println("这一天是这一年的第" + total);
    }
   //方法二:
    static void TotalDays(int year,int month,int day) {
        int total = 0;//总天数
        for (int i = 1; i < month; i++) {
            if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
                total += 31;
            } else if (i == 4 || i == 6 || i == 9 || i == 11 ) {
                total += 30;
            } else {
                if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                    total += 29;
                } else {
                    total += 28;
                }
            }
        }
        total += day;
        System.out.println("这一天是这一年的第" + total);
    }
//方法三:
 public static void totalDays(int year, int month, int day) {
     int totaldays = 0;
     if (month <= 12 && day <= 31) { //判断年月日对不对
         for (int i = 1; i < month; i++) {
             switch (i) {
                 case 1:
                     totaldays += 31;
                     break;
                 case 3:
                     totaldays += 31;
                     break;
                 case 5:
                     totaldays += 31;
                     break;
                 case 7:
                     totaldays += 31;
                     break;
                 case 8:
                     totaldays += 31;
                     break;
                 case 10:
                     totaldays += 31;
                     break;
                 case 4:
                     totaldays += 30;
                     break;
                 case 6:
                     totaldays += 30;
                     break;
                 case 9:
                     totaldays += 30;
                     break;
                 case 11:
                     totaldays += 30;
                     break;
                 case 2:
                     totaldays += 28;
                     break;
             }
         }
         if (month > 2) {
             if (year % 4 == 0 && year % 400 != 0 || year % 400 == 0) {
                 System.out.println("这一天是这一年的第" + (totaldays + 1 + day) + "天");
             } else {
                 System.out.println("这一天是这一年的第" + (totaldays + day) + "天");
             }
         } else {
             System.out.println("这一天是这一年的第" + (totaldays + day) + "天");
         }
     }else {
         System.out.println("输入错!请检查输入!");
     }
 }

本文地址:https://blog.csdn.net/weixin_48262880/article/details/107265333

《判断这一天是这一年的第几天? 的三种方法! Java.doc》

下载本文的Word格式文档,以方便收藏与打印。