国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

計算兩日期間2月29日總數(shù)的Java程序

2019-11-14 15:21:23
字體:
供稿:網(wǎng)友

  事先聲明,本人僅僅是個計算機領(lǐng)域的新手,不久前開始學習java。后來我接到了一份關(guān)于計算兩日期間2月29日總數(shù)的編程作業(yè),倉促之中我便寫下了這個程序。由于之前可以說毫無編程經(jīng)驗,Java也僅僅是只學了一小部分。所以目前該程序尚未解決輸入問題。

  我解決這個問題的思路是:

  1. 編寫一個方法(leapYear)用于判斷某一年份是否為閏年;
  2. 編寫另一個方法(dateExist)用于判斷某一時期是否真實存在,在這方法中會引用到上個方法;
  3. 最后編寫main方法,引用方法(dateExist)分別判斷起始日期和終止日期是否真實存在;
  4. 倘若均真實存在。假如起始和終止日期不在同一年,這對起始和終止年份之間的年份枚舉,把閏年總數(shù)計算出來,在這過程中引用方法(leapYear);不真實存在則顯示提示。
  5. 最后判斷起始和終止年份是否為閏年及起始/終止月份是否小于/大于2月,并把符合條件的2月29日算出,在這過程中也須引用方法leapYear。

  

  以下是我的代碼:

public class LeapYearComputing
{
  //判斷某一年份是否為閏年。
  public static boolean leapYear(int y) {
    boolean leapYear;
    if (y % 4 == 0) {
      if(y % 100 == 0) {
        if(y % 400 == 0) {
          leapYear = true;
        }
        else {
          leapYear = false;
        };    
      }
      else {
        leapYear = true;
      };
    }
    else {
      leapYear = false;
  };
  return leapYear;
};

//判斷某一日期是否存在,不考慮公元前的年份。
public static boolean dateExist(int year ,int month ,int date) {
  boolean dateExist;
    if (year > 0 ) {
      if (month > 0 && month < 13) {
        if (date > 0 && date < 32) {
          switch(month) {
            case 2:
              if (leapYear(year)) {
                if (date < 30) {
                  dateExist = true;
                }
                else {
                  dateExist = false;
                };
              }
              else if (date < 29) {
                dateExist = true;
              }
              else {
                dateExist = false;
              };
              break;
            case 4:
            case 6:
            case 9:
            case 11:
              if (date < 31) {
                dateExist = true;
              }
              else {
                dateExist = false;
              };
              break;
            default:
              if (date < 32) {
                dateExist = true;
              }
              else {
                dateExist = false;
              };
            };
          }
          else {
            dateExist = false;
          };
        }
        else {
          dateExist = false;
        };
      }
      else {
        dateExist = false;
      };
   return dateExist;
};

//計算兩個日期間2月29日數(shù)量。
public static void main(String[] args) {
int year1 = 555; //輸入起始年份。
int month1 = 2; //輸入起始月份。
int date1 = 28; //輸入起始日期。
int year2 = 2012; //輸入終止年份。
int month2 = 2; //輸入終止月份。
int date2 = 28; //輸入終止日期。
int result = 0;
int Year = year1 + 1;
if (dateExist(year1,month1,date1)) {
  if (dateExist(year2,month2,date2)) {
    while (Year < year2 ) {
      if (leapYear(Year)) {
        result ++;
      };
      Year ++;
    };
    if (year1 == year2 && leapYear(year1)) {
      result --;
    };
    if (month1 <= 2 && leapYear(year1)) {
      result ++;
    };
    if (month2 > 2 || (month2 == 2 && date2 == 29) && leapYear(year2)) {
    result ++;
    }
  System.out.   }
  else {
    System.out.println("終止日期并不真實存在。");
  };
}
else {
System.out.println("起始日期并不真實存在。");
};




};
}

  PS:本程序不考慮公元前年份。我原本考慮公元前的情況,但慮及公元前并無公元紀年,而且關(guān)于閏年的定義極有可能不在適用,便把年份限定在公元后。

    當起始和終止年份在同一年,且這一年是閏年的情況下,應(yīng)將閏年數(shù)減一。

  各位若發(fā)現(xiàn)該程序的不足之處或有更好的算法,還望多多指教。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 农安县| 运城市| 来安县| 邛崃市| 河间市| 巩留县| 霞浦县| 昌图县| 会同县| 西青区| 绥化市| 当雄县| 南投市| 芜湖市| 漳浦县| 锡林浩特市| 常熟市| 临江市| 靖边县| 新建县| 临沧市| 平江县| 塔河县| 夏津县| 龙州县| 石渠县| 务川| 南和县| 于都县| 东明县| 安庆市| 鹤岗市| 壶关县| 襄汾县| 新河县| 盐城市| 靖江市| 潜江市| 白城市| 花莲县| 毕节市|