[c#] 計算兩個日期之間的差異(天數)?


Answers

使用日期減法結果的TimeSpan對象:

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

我發現這個問題已經為JavaJavaScriptPHP ,但不是C#。 那麼,如何計算C#中兩個日期之間的天數呢?




如果有人想把整天的數字作為一個double( ab類型的DateTime ):

 (a.Date - b.Date).TotalDays



// 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

您還可以獲得秒,毫秒和滴答的差異。




我認為這會做你想做的事情:

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

TimeSpan t = d1 - d2;
double NrOfDays = t.TotalDays;



首先聲明一個稍後會返回的類:

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();
}

使用按鈕控件調用上述類。 這裡是一個例子:




對於像我這樣的初學者來說,會偶然發現這個小問題,簡單地說,將樣例轉換為int

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

這將計算從今天(DateTime.UtcNow.Date)到所需日期(myDateTime.Date)的總天數。

如果myDateTime是昨天或比今天更早的日期,這將給出正(+)整數結果。

另一方面,如果myDateTime是明天或將來的日期,由於添加規則,這將給出負( - )整數結果。

快樂的編碼! ^ _ ^




獲取兩個日期之間的差異,然後從以下日期獲取日期:

int total_days = (EndDate - StartDate).TotalDays



Related



Tags

c# c#   date