欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-01-14 12:36:22
程序分析: 以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 ....
程序分析: 以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