1

月の 2 つの日付の差を取得する方法はありますか。10 進数を希望します。

元 :

First Date : 2010-12-20
Second Date : 2011-12-30

これは、これらの日付の間で 1 か月と 10 日程度です。

違いは私に与えるはずです:1.33

DateTime dt = new DateTime();
dt = Convert.ToDateTime("2011-12-30"); ;

DateTime dt2 = new DateTime();
dt2 = Convert.ToDateTime("2010-12-20");

int monthDiff = System.Data.Linq.SqlClient.SqlMethods.DateDiffMonth(dt,dt2);
4

2 に答える 2

1

最初に全体の月数を計算する必要があります。次に、1 か月の分数として日を追加します。1 か月に 30 日働く場合、次のようになります。

int wholeMonthsDiff = ((date2.Year * 12) + date2.Month) - ((date1.Year * 12) + date1.Month);
if (date2.Day < date1.Day) 
    wholeMonthsDiff--;
var diff = date2 - date1.AddMonths(wholeMonthsDiff);
double monthsDifference = wholeMonthsDiff + (diff.Days / 30d);
于 2011-01-23T18:00:08.143 に答える
1

VisualBasic-Namespace からDateDiffを使用できます(C# を使用する場合も):

VB.Net

Dim monthsTotal As Double = DateDiff("m", dt, dt2) + _
                             (dt2.Day - dt.Day) / DateDiff("d", dt2, DateAdd("m", 1, dt2))

C#

double monthsTotal = DateAndTime.DateDiff("m", dt, dt2) + (dt2.Day - dt.Day) / DateAndTime.DateDiff("d", dt2, DateAndTime.DateAdd("m", 1, dt2));

ところで、例の日付の違いは、1か月と10日ではなく、1年と10日です。

于 2011-01-23T18:16:57.430 に答える