【问题标题】:Calender.SelectedDate - DateTime.Now;Calender.SelectedDate - DateTime.Now;
【发布时间】:2017-11-09 13:06:41
【问题描述】:
lblService = CalService.SelectedDate - DateTime.Now;

我正在计算距离所选日期还有多少天。 这会使程序崩溃。 我也试过了

DateTime daysTillService = CalService.SelectedDate - DateTime.Now;

这会导致此错误: 无法隐式转换类型“System.TimeSpan?”到'System.DateTime'

【问题讨论】:

  • 当你减去日期时,你会得到一个TimeSpan
  • DateTime.Today 有效吗?
  • 当您对两个日期执行算术运算时,结果是时间跨度,而不是另一个日期时间。这就是您收到此错误的原因。同样,当您从另一个日期中减去一个日期时,您永远不会得到另一个日期。您需要减去天、月或年才能得到另一个日期。

标签: c# wpf datetime calendar


【解决方案1】:

试试这个:

int daysTillService = (CalService.SelectedDate.HasValue) ? (int)DateTime.Now.Subtract(CalService.SelectedDate.Value).TotalDays : 0;

【讨论】:

    【解决方案2】:

    当您减去两个 DateTime 值时,您实际上会返回一个 TimeSpan,这就是您遇到异常的原因。

    TimeSpan lblService=CalService.SelectedDate.Subtract(DateTime.Now);
    

    然后将两个 DateTime 值之间的天数存储为 int:

    int DaysBetween=(int)lblService.TotalDays;
    

    【讨论】:

      猜你喜欢
      • 2010-09-19
      • 2010-09-08
      • 2020-02-23
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 2012-08-03
      • 2011-08-01
      • 1970-01-01
      相关资源
      最近更新 更多