首頁>Club>
不用時間函式和蔡勒公式,怎麼寫出一個簡單的日曆?
20
回覆列表
  • 1 # 日衝資訊 黃

    這是一道經典的程式設計練習題。相信網上有很多解答,下面我就這個問題分享一些使編碼簡潔的經驗。

    減少不必要的計算

    有些數值是固定的這部分數值就不要寫程式實時計算了。給定日期求日數時,不少人喜歡用迴圈做累加。但這是沒有必要的,可以提前做一個數組:

    int monthdays={31,59,90,120,...};透過計算避免迴圈

    編碼時應儘量避免使用迴圈計算。為了求出距離公元一年一月一號的日數使用迴圈是不必要的。可以用算式算出:

    totaldays+=year*365+year/4-year/100+year/400;使用算式減少邏輯分支

    邏輯分支會增加複雜度,影響程式碼質量,應最小限度使用。可以使用算式代替部分邏輯判斷:

    leap=((year%100!=0)&&(year%4==0))?1:0;leap=((year%100==0)&&(year%400==0))?1:leap;完整的例子

    以下是求總日數的程式碼片段:

    int monthdays={31,59,90,120,...};int totaldays=0;int leap=0;leap=((year%100!=0)&&(year%4==0))?1:0;leap=((year%100==0)&&(year%400==0))?1:leap;totaldays+=monthdays[month-1];totaldays+=leap;totaldays+=year*365+year/4-year/100+year/400;

  • 中秋節和大豐收的關聯?
  • iQOO新機出現XQ戰隊日常交流切磋中,是被專業玩家給內定了嗎?