【问题标题】:How to convert timespan to datetime如何将时间跨度转换为日期时间
【发布时间】:2016-04-07 02:32:48
【问题描述】:

我有 3 个按时间格式的日期选择器: 开始时间、结束时间和持续时间。

首先我需要获取 Time From 和 Time to 的差值并将其显示到 Duration DatePicker。

        DateTime fromTime = dtFrom.Value;
        DateTime toTime = dtTo.Value;

        TimeSpan duration = toTime.Subtract(fromTime)

        dtNoOfHours.Value = duration;

但我遇到以下错误:System.InvalidCastException

如何将时间跨度转换为日期时间?

【问题讨论】:

  • Timespan 是一个持续时间,您需要参考时间来增加或减少时间跨度。
  • 如果持续时间超过 1 天,您将如何在日期选择器中显示?
  • 你试过分配刻度吗?像这样的东西:dtNoOfHours.Value = new DateTime(duration.Ticks)
  • @un-lucky 它不应超过 24 小时。
  • 这是什么应用程序?

标签: c# datepicker


【解决方案1】:

这可能是您需要的(带有虚拟日期组件的 DateTime):

DateTime Temp = new DateTime(2000, 12, 12, duration.Hours, 0, 0);

dtNoOfHours.Value  = Temp;

【讨论】:

    【解决方案2】:

    如果您需要 dtNoOfHours 以小时为单位存储总持续时间,我认为它必须是 int,因此您可以编写如下代码:

    dtNoOfHours.Value = duration.TotalHours;
    

    但是,如果 dtNoOfHours 必须是 DateTime,我认为您可以使用第三个虚拟日期时间(可能是当前日期时间),以便执行以下链接中显示的示例:

    https://msdn.microsoft.com/en-us/library/8ysw4sby(v=vs.110).aspx

    【讨论】:

      猜你喜欢
      • 2019-10-14
      • 1970-01-01
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-14
      • 1970-01-01
      相关资源
      最近更新 更多