2016-10-06 6 views
-6

閏日を無視する2つの日付間の日付差を見つけるためにいくつかのロジックを共有してください。C#減算メソッドにはうるう年が含まれています。 など。 startDat = 26-02-2016、endDate = 03-03-2016 私は答えが6でなく5であることを望みます。日付の差分による閏日の無視

ありがとうございます!それを行うには

+0

私たちはあなたのためのコードを記述しないでください。あなたが試したことを私たちに見せて、何がうまくいかないのかを教えてください。そうすれば、何が間違っているのか理解できるようになるでしょう。 –

+0

うるう年であるかどうかを確認する条件ロジックを追加してそこから行くことができます。 startDat.IsLeapYear()のようなことをやってみてください。 – Jay

+0

私のクエストで述べたように、私が試みたのはendDate.Subtract(startDate).TotalDays :) – Deepak

答えて

0

一つの方法は以下の通りです:

public static int DayDiff(DateTime d1, DateTime d2) 
{ 
    DateTime min, max; 
    if(d1 < d2) 
    { 
     min = d1; max = d2; 
    } 
    else 
    { 
     min = d2; max = d1; 
    } 

    int nbOfDays = 0; 
    while(max.Date != min.Date) 
    { 
     min = min.AddDays(1); 
     if (min.Month != 2 || min.Day != 29) // Skip leap day 
      nbOfDays++; 
    } 
    return nbOfDays; 
} 
+1

この論理は次の値に失敗します。var d1 = new DateTime(2016、06、30); var d2 =新しいDateTime(2021、06、30); – Deepak