如何获得日期的差异

时间:2012-07-02 05:53:40

标签: c# ajax

我正在创建一个网页,因为我使用Ajax日历来选择两个日期,例如TO日期和From日期,我也有Textbox天的总数。

因此,当用户选择tofrom日期时,这些日期的差异会显示在文本框中。那么我怎样才能找到这些日期的差异..?

我将格式设置为dd/MM/yyyy

e.g。

one textbox has: 20/04/2012  
second has     : 02/05/2012

那么,请找出这些差异吗?

先谢谢.... Mitesh

4 个答案:

答案 0 :(得分:8)

Substraction运算符( - )适用于DateTime

DateTime to_datetime = DateTime.ParseExact(to_textbox.Text, "dd/MM/yyyy", 
                                           CultureInfo.InvariantCulture);
DateTime from_datetime = DateTime.ParseExact(from_textbox.Text, "dd/MM/yyyy", 
                                             CultureInfo.InvariantCulture);

Timespan result  = to_datetime - from_datetime;

您可以将其用作

textBox1.Text = (to_datetime - from_datetime).TotalDays.ToString();

答案 1 :(得分:3)

使用以下方法将文本框值转换为日期:

DateTime dt1 = DateTime.ParseExact(textbox1.Text, "d/M/yyyy", CultureInfo.InvariantCulture);
DateTime dt2 = DateTime.ParseExact(textbox2.Text, "d/M/yyyy", CultureInfo.InvariantCulture);

使用TimeSpane

    TimeSpan ts = dt1.Subtract(dt2);
    Console.Write(ts.TotalDays);
    textBox3.Text = ts.TotalDays;

答案 2 :(得分:1)

假设C#代码:DateTime支持“ - ”导致TimeSpan对象。

DateTime nowTime = DateTime.Now;
DateTime yesterday = nowTime.AddDay(-1);
TimeSpan diff = nowTime - yesterday;

答案 3 :(得分:0)

DateTime date1 =DateTime.ParseExact("20/04/2012","d/M/yyyy",null);
 DateTime date2 = DateTime.ParseExact("02/05/2012", "d/M/yyyy", null); 
 TimeSpan datediff = date2 - date1;
 Response.Write(datediff.ToString());