0

我有 2 个带有 2 个 ajax 日历的文本框。一个是开始日期,另一个是结束日期。我试图找出他们之间的日子,但我似乎无法做到这一点。这就是我的做法:

string a = txt1.Text;
        string b = txt2.Text;


        DateTime data1 = Convert.ToDateTime(a);
        DateTime data2 = Convert.ToDateTime(b);

        TimeSpan span = data2 - data1;

        int zile = Convert.ToInt32(Math.Ceiling(span.TotalDays));

        label.Text = span.ToString();

我文本框中的日期采用以下格式:2012 年 4 月 4 日和 2012 年 4 月 5 日。这应该是一天的差异,但是当我运行此代码时,它会显示 30 天,因为它被解释为一个月。我该如何更改?

4

2 回答 2

1

这对我有用,刚刚测试过。

using System;

namespace DaySpan
{
    class Program
    {
        static void Main(string[] args)
        {

            DateTime startDate = DateTime.Parse("03.04.2012");
            DateTime endDate = DateTime.Parse("06.04.2012");

            Console.WriteLine(startDate.ToString());
            Console.WriteLine(endDate.ToString());

            Console.WriteLine("--------------------------------");
            Console.WriteLine("Calculate dayspan:");

            TimeSpan span = endDate - startDate;

            Console.WriteLine("Span: " + span.TotalDays);

            Console.ReadLine();

        }
    } 
}

编辑:这可能是日期时间解析和语言环境的顶级帖子中提到的问题。但是,这对于我的语言环境(挪威语)是正确的。

于 2012-04-12T09:33:15.027 回答
0

这个结果不是表示 92 天 0 小时 0 分钟 0 秒吗?我想我看不到这里的问题。

编辑 - 如果您希望它只为您提供 days 属性,请查看此 SO 帖子

于 2012-04-12T09:22:43.020 回答