【问题标题】:calculating number of days between 2 dates chosen from calendar(C#)计算从日历中选择的两个日期之间的天数(C#)
【发布时间】:2012-06-01 17:20:46
【问题描述】:

我正在使用 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# .net visual-studio-2010 webpage


    【解决方案1】:

    这应该可行。

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

    但是,这不排除星期日。

    【讨论】:

    【解决方案2】:

    您可以使用DateTime.Substract 进行计算。
    使用返回的 TimeSpan 对象计算和删除星期日应该很容易。
    编辑
    Jon 的评论是正确的,仅使用 TimeSpan 来获取星期天并不是一件容易的事。下方评论中提供的链接(由 louis 提供)似乎完成了这部分工作

    【讨论】:

    • 9 天的TimeSpan 中有多少个星期日?你不能只是使用TimeSpan...
    【解决方案3】:

    通过减去两个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;放; }

    【讨论】:

      猜你喜欢
      • 2015-07-08
      • 1970-01-01
      • 1970-01-01
      • 2015-02-26
      • 2019-09-27
      相关资源
      最近更新 更多