计算从日历 (C#) 中选择的 2 个日期之间的天数

本文关键字:日期 之间 选择 日历 计算 | 更新日期: 2023-09-27 18:35:59

im 使用 vs 2010。

下面的代码是我在 2 个文本框中放置 2 个日期的方式。我想知道如何计算否。他们之间的天数。如果可能的话,你能告诉我如何提前从那个号码起飞周日.thnx

protected void LinkButton1_Click(object sender, EventArgs e)
{
    Calendar1.Visible = true;
}
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
    TextBox3.Text = Calendar1.SelectedDate.ToLongDateString();
    Calendar1.Visible = false;
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
    Calendar2.Visible = true;
}
protected void Calendar2_SelectionChanged(object sender, EventArgs e)
{
    TextBox4.Text = Calendar2.SelectedDate.ToLongDateString();
    Calendar2.Visible = false;
}

计算从日历 (C#) 中选择的 2 个日期之间的天数

这应该有效。

var days = (Calendar1.SelectedDate - Calendar2.SelectedDate).TotalDays;

但是,这并不排除周日。

您可以使用 DateTime.Substract 进行计算。
使用返回的 TimeSpan 对象计算星期日并删除它们应该很容易。
编辑
乔恩的评论是正确的,仅仅使用TimeSpan来获取星期日并非易事。下面评论中提供的链接(路易斯)似乎完成了这部分工作

通过减去两个DateTime值来计算TimeSpan

以下代码应帮助您入门。

 if ( Calendar2.SelectedDate != null && Calendar1.SelectDate != null )
 {
      TimeSpan Value;
      if ( Calendar2.SelectedDate >= Calendar1.SelectedDate )
           Value = (Calendar2.SelectedDate - Calendar1.SelectedDate).TotalDays;
      else
          Value = (Calendar1.SelectedDate - Calendar2.SelectedDate).TotalDays; 
 }

我目前无法访问Visual Studio,我相信这是编译的,这只是一个快速而肮脏的建议。

public Nullable SelectedDate { get; set; }