web-dev-qa-db-ja.com

2つの日付の間の差を計算します(日数)?

私はこの質問が JavaJavaScript 、および _ php _ に対して回答されたが、C#には回答されなかったことを私は見ます。では、C#の2つの日付の間の日数をどのように計算すればよいでしょうか。

943
leora

StartDateEndDateDateTime型であると仮定します。

(EndDate - StartDate).TotalDays
1765
Greg Beech

日付減算の結果であるTimeSpanオブジェクトを使用します。

DateTime d1;
DateTime d2;
return (d1 - d2).TotalDays;
127

もしあなたが整数としてWHOLE日だけを望み、日付の時間要素を忘れて満足しているのなら、一番上の答えは正しいですが、それから検討してください:

(EndDate.Date - StartDate.Date).Days

また、StartDateとEndDateがDateTime型であると仮定します。

97
Darren

私はこれがあなたが望むことをすると思います:

DateTime d1 = DateTime.Now;
DateTime d2 = DateTime.Now.AddDays(-1);

TimeSpan t = d1 - d2;
double NrOfDays = t.TotalDays;
43
pyrocumulus
DateTime xmas = new DateTime(2009, 12, 25);
double daysUntilChristmas = xmas.Subtract(DateTime.Today).TotalDays;
33
Philip Wallace

誰かが丸一日の日数を倍にしたい場合(ab型のDateTime):

 (a.Date - b.Date).TotalDays
17
kingPuppy
// Difference in days, hours, and minutes.

TimeSpan ts = EndDate - StartDate;

// Difference in days.

int differenceInDays = ts.Days; // This is in int
double differenceInDays= ts.TotalDays; // This is in double

// Difference in Hours.
int differenceInHours = ts.Hours; // This is in int
double differenceInHours= ts.TotalHours; // This is in double

// Difference in Minutes.
int differenceInMinutes = ts.Minutes; // This is in int
double differenceInMinutes= ts.TotalMinutes; // This is in double

あなたはまた、秒、ミリ秒と目盛りで違いを得ることができます。

13
Vijay Maheriya

あなたはこれを試すことができます

EndDate.Date.Subtract(DateTime.Now.Date).Days
8
Rohidas Kadam

私のような初心者のために、それは int へのサンプル変換で、簡単な行で、この小さな問題につまずくでしょう

int totalDays = Convert.ToInt32((DateTime.UtcNow.Date - myDateTime.Date).TotalDays);

これは、今日(DateTime.UtcNow.Date)から希望の日付(myDateTime.Date)までの合計日数を計算します。

MyDateTimeが昨日、または今日よりも古い日付である場合、これは正(+)の整数結果になります。

一方、myDateTimeが明日または未来の日付の場合、これは加算規則のために負の( - )整数の結果になります。

ハッピーコーディング! ^ _ ^

4
LoudSpeaker

2つのa型としてのbおよびDateTimeの場合

DateTime d = DateTime.Now;
DateTime c = DateTime.Now;
c = d.AddDays(145);
string cc;
Console.WriteLine(d);
Console.WriteLine(c);
var t = (c - d).Days;
Console.WriteLine(t);
cc = Console.ReadLine();
3

タイムスパンを使用すると、多くの属性があるため問題を解決できます。

DateTime strt_date = DateTime.Now;
DateTime end_date = Convert.ToDateTime("10/1/2017 23:59:59");
//DateTime add_days = end_date.AddDays(1);
TimeSpan nod = (end_date - strt_date);
Console.WriteLine(strt_date + "" + end_date + "" + "" + nod.TotalHours + "");
Console.ReadKey();
2
Vijay Vj

2つの日付の差を取得してから次の日付を取得します。

int total_days = (EndDate - StartDate).TotalDays
0
Muhamad Eissa

最初に、後で返されるクラスを宣言します。

public void date()
{
    Datetime startdate;
    Datetime enddate;
    Timespan remaindate;

    startdate = DateTime.Parse(txtstartdate.Text).Date;
    enddate = DateTime.Parse(txtenddate.Text).Date;

    remaindate = enddate - startdate;

    if (remaindate != null)
    {
        lblmsg.Text = "you have left with " + remaindate.TotalDays + "days.";
    }
    else
    {
        lblmsg.Text = "correct your code again.";
    }
}

protected void btncal_Click(object sender, EventArgs e)
{
    date();
}

ボタンコントロールを使用して上記のクラスを呼び出します。これが一例です。

0
Muba

以下のコードを使うことができます。

 int DateDifInSecond = EndDate.Subtract(StartDate).TotalSeconds
0
Code_Worm