【问题标题】:Visual Studio: How to get the number days and hours from two DateTimePickerVisual Studio:如何从两个 DateTimePicker 中获取天数和小时数
【发布时间】:2019-07-09 21:39:38
【问题描述】:

我需要你的帮助,我不知道该怎么做。

我有两个 DateTimePicker:

DateTimePicker1 = 返回日期

DateTimePicker2 - 返回时间

我想得到 当前日期和时间与那些 两个 DateTimePicker 的差异,以得到 天数和小时数

【问题讨论】:

  • var diff = dtp1.Value.ToTimeOfDay - dtp2.Value.ToTimeOfDay
  • Visual Studio 与问题无关。您使用的是哪个堆栈? WPF?窗体? ASP.NET?它们都有一个名为 DateTimePicker 的控件。在所有情况下,虽然值是通过Value 属性而不是Text 检索的。 Value 是一个没有格式的 DateTime
  • 我使用的是 Visual Studio,DateTimePicker1 设置为仅获取日期,DateTimePicker2 设置为获取时间。

标签: vba visual-studio visual-studio-2010 visual-studio-2012


【解决方案1】:

我不确定您要达到的目标。您可以执行如下所述的操作

    static void Main(string[] args)
    {
        DateTime dpt1 = new DateTime(2019, 02, 15);
        DateTime dpt2 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 10, 30, 45);

        DateTime combined = new DateTime(dpt1.Year, dpt1.Month, dpt1.Day, dpt2.Hour, dpt2.Minute, dpt2.Second);
        var diff = new DateTime(DateTime.Now.Ticks - combined.Ticks);
        var hours = diff.Hour;
    }

不过,我发现您的问题存在问题。 “我想要从当前日期和时间到这两个 DateTimePicker 的差异,这样我就可以获得总天数和小时数。”不幸的是,您将无法提取日期差异,因为在 dpt2 中您只能选择小时/分钟/秒。月/日/年字段在计算中本质上是无用和不可用的。

如果您想专门获得时间跨度差异,您可以轻松地做到这一点

TimeSpan.FromTicks(DateTime.Now.Ticks - combined.Ticks);

【讨论】:

  • dpt2.Hour, dpt2.Minute, dpt2.Second 不起作用,给我一个无法转换为 int 的错误。
  • 还需要帮助吗?
  • 我粘贴的代码在新的控制台应用程序中编译并运行良好。您可以使用 - 运算符减去 2 个日期时间,结果将是一个时间跨度。
【解决方案2】:

Dim combine As Date = DateTimePicker1.Value.Date + DateTimePicker2.Value.TimeOfDay

将 currentDate 调暗为 Date = Date.Now()

Dim timeDifference As TimeSpan = combine - currentDate

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    相关资源
    最近更新 更多