2014年12月30日 星期二

日期相差天數計算公式


對於一日期計算出一相對應的一整數N,再計算出兩整數相差即為相差天數。
方法如下:


    N=1461 * f(年) 
÷ 4 + 153 * g(月) ÷ 5 +日
    其中:
                   f(年)      = 年 - 1         
如果月<=2
                                 =年                其他情況

                    g(月)     =月+13         如果月<=2

                                  =月+1            其他情況
(對於1900/3/1以後上式都成立)


ex :  2004/2/1~2005/9/20
∵N1=1461 * 2003  ÷ 4 +153 * 15 ÷ 5 + 1
         =731595 + 459 + 1
         =732055

    N2=1461 * 2005 ÷ 4 +153 * 10 ÷ 5 +20
         = 732326 + 306 +20
         =732652


∴ N2 - N1 =  597 = 相差天數



C++ 判斷式   if (month<=2){
            month+=13;
            year-=1;}
        else{
            month+=1;
        }

用Execl測試過結果相同,但超過2100年後就開始有誤差了。

沒有留言:

張貼留言