C# 获取一个文本框以显示两个日期选择器之间的天数差

C# 获取一个文本框以显示两个日期选择器之间的天数差,c#,C#,我有两个日期时间选择器,如果用户选择日期,我想在文本框中显示它们之间的天数 我的代码的问题是它没有给我正确的答案,而且TimeSpan似乎不起作用 当我选择不同的日期时,答案是10.99998008713天而不是11天,我不知道是否需要做数学总结 private void btnCalc_Click(object sender, EventArgs e) { DateTime start = ArrivalDate.Value;

我有两个日期时间选择器,如果用户选择日期,我想在文本框中显示它们之间的天数

我的代码的问题是它没有给我正确的答案,而且
TimeSpan
似乎不起作用

当我选择不同的日期时,答案是10.99998008713天而不是11天,我不知道是否需要做数学总结

    private void btnCalc_Click(object sender, EventArgs e)
    {        
          DateTime start = ArrivalDate.Value;
          DateTime finish = DepartureDate.Value;

          TimeSpan numberOfNights = finish-start;
          double TotalDays= numberOfNights.Days;
          txtBoxNum.Text = (numberOfNights.ToString());
   }

   private void ArrivalDate_ValueChanged(object sender, EventArgs e)
   {
       DepartureDate.Value = ArrivalDate.Value.AddDays(1);
   }

   private void DepartureDate_ValueChanged(object sender, EventArgs e)
   {
       if (DepartureDate.Value < ArrivalDate.Value)
       {
           MessageBox.Show("Cannot be less than previous date");
           DepartureDate.Value = ArrivalDate.Value.AddDays(1);
           snip...
       }
   }
private void btnCalc\u单击(对象发送者,事件参数e)
{        
DateTime start=ArrivalDate.Value;
DateTime finish=DepartureDate.Value;
TimeSpan numberOfNights=完成-开始;
double TotalDays=夜数。天;
Text=(numberOfNights.ToString());
}
private void ArrivalDate_值已更改(对象发送方,事件参数e)
{
出发日期.Value=ArrivalDate.Value.AddDays(1);
}
私有void DepartureDate\u值已更改(对象发送方,事件参数e)
{
if(出发日期值<到达日期值)
{
MessageBox.Show(“不能少于以前的日期”);
出发日期.Value=ArrivalDate.Value.AddDays(1);
剪
}
}
我不知道我是否需要做数学总结

    private void btnCalc_Click(object sender, EventArgs e)
    {        
          DateTime start = ArrivalDate.Value;
          DateTime finish = DepartureDate.Value;

          TimeSpan numberOfNights = finish-start;
          double TotalDays= numberOfNights.Days;
          txtBoxNum.Text = (numberOfNights.ToString());
   }

   private void ArrivalDate_ValueChanged(object sender, EventArgs e)
   {
       DepartureDate.Value = ArrivalDate.Value.AddDays(1);
   }

   private void DepartureDate_ValueChanged(object sender, EventArgs e)
   {
       if (DepartureDate.Value < ArrivalDate.Value)
       {
           MessageBox.Show("Cannot be less than previous date");
           DepartureDate.Value = ArrivalDate.Value.AddDays(1);
           snip...
       }
   }
我们也没有。10.99998008713天大约是10天23小时59分59秒。你想把它算作11天吗?如果是的话,10天23小时59分58秒怎么样?在某个时刻,你将不得不决定10天和11天之间的截止时间是多少。这可能取决于您的业务规则,我们不知道这一点

另外,
numberOfNights.Days
numberOfNights
值的白天部分;因此,2013年11月4日为4。你确定这就是你想要的吗?你不想要多少个夜晚。总天数,这将是你的
完成
开始
之间经过的时间,以天为单位?

这一个成功了

          int TotalDays= numberOfNights.Days;
          txtBoxNum.Text = ((int)Math.Ceiling(numberOfNights.TotalDays)).ToString();

你有什么问题?你已经成功了一半。您有一些代码,但需要一个问题:DHi欢迎使用StackOverflow。你有什么错误吗?如果是的话,请你提一下好吗?我希望我能在顶部详细解释一下,但我被限制在50字以内,所以我无法恰当地回答我的问题。。我有两个日期时间选择器,如果用户选择日期,我想在文本框中显示它们之间的天数。。我的代码的问题是它没有给我正确的答案,而且时间跨度似乎不起作用。。我不知道我哪里做错了这就是为什么我要求assistance@CliveCarl,我已经编辑了你的问题。标题应该给出一个简短的概述,问题区域是您应该向问题本身添加相关信息的地方。Jon Skeet在这里有一个很好的提问清单,所以()或者你可以查看帮助部分()Dour High Arch谢谢老兄,我想让它显示11,但它现在工作了。。全部的appreciated@CliveCarl,既然这个答案对你有帮助,你应该a)投赞成票,b)将其标记为已回答(绿色复选标记)@Nathan Koop,我知道在这个网站上我试过投赞成票,但上面写着“投赞成票需要15个声誉”,所以我除了投赞成票和按阅读标记外,什么也做不了