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

C# 计算从日历中选择的两个日期之间的天数(C),c#,.net,visual-studio-2010,webpage,C#,.net,Visual Studio 2010,Webpage,我使用VS2010 下面的代码是我如何在两个文本框中输入两个日期的。我想知道如何计算两个日期之间的天数。如果可能的话,你能告诉我如何从这个数字中减去星期天吗 protected void LinkButton1_Click(object sender, EventArgs e) { Calendar1.Visible = true; } protected void Calendar1_SelectionChanged(object sender, EventArgs e) {

我使用VS2010

下面的代码是我如何在两个文本框中输入两个日期的。我想知道如何计算两个日期之间的天数。如果可能的话,你能告诉我如何从这个数字中减去星期天吗

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;
}
这应该行得通

var days = (Calendar1.SelectedDate - Calendar2.SelectedDate).TotalDays;
但是,这并不排除星期天。

这应该可以

var days = (Calendar1.SelectedDate - Calendar2.SelectedDate).TotalDays;
但是,这并不排除星期天。

您可以使用来进行计算。 使用返回的TimeSpan对象,计算星期日并删除它们应该很容易。 编辑 Jon的评论是正确的,仅仅利用TimeSpan就可以得到周日,这并不是一件小事。不过,路易斯在下面的评论中提供的链接似乎完成了这部分工作

您可以使用来进行计算。 使用返回的TimeSpan对象,计算星期日并删除它们应该很容易。 编辑 Jon的评论是正确的,仅仅利用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; 
 }
我目前没有访问VisualStudio的权限,我相信这是需要编译的,它只是一个快速而肮脏的建议

公共可空的SelectedDate{get;set;}

通过减去两个日期时间值来计算时间跨度

下面的代码应该可以帮助您开始

 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; 
 }
我目前没有访问VisualStudio的权限,我相信这是需要编译的,它只是一个快速而肮脏的建议

公共可空的SelectedDate{get;set;}


应该注意的是,减去两个DateTime对象将返回TimeSpan实例,这在许多情况下都很有用。此外,还可以计算范围之间的星期日。看一看应该注意的是,减去两个DateTime对象将返回一个TimeSpan实例,这在许多情况下都很有用。此外,还可以计算范围之间的星期日。看看在9天的时间跨度内有多少个星期天?你不能只使用时间跨度…在9天的时间跨度内有多少个星期天?你不能只使用时间跨度。。。