gpt4 book ai didi

c# - 如何在 C# 中处理带有持续时间的实际时间?

转载 作者:太空狗 更新时间:2023-10-29 22:18:05 24 4
gpt4 key购买 nike

将完整的 DateTime 实例与表示一天中的实际时间 的小时、分钟和秒进行比较的首选方法是什么?三胞胎(例如添加小时,分钟秒..)?


我目前的做法是类似

DateTime startHour = new DateTime(1900,1,1,12,25,43);
DateTime endHour = new DateTime(1900,1,1,13,45,32);

// I need to, say, know if a complete DateTime instance
// is later than startHour plus 15 minutes

DateTime now = DateTime.Now();

startHour = startHour.addMinutes(15);

if (now.CompareTo(new DateTime(now.Year, now.Month, now.Day, startHour.Hour,
startHour.Minute, startHour.Second)) > 0)
{
//I can do something now
}

这非常麻烦,甚至容易失败。据我所知,TimeSpan 不是解决方案,因为它们代表跨度并且不受 24 小时限制的约束(56 小时 34 分钟的 TimeSpan 是有效。)

此类计算的首选方法是什么?

最佳答案

“大于 startHour”是什么意思一点都不清楚......但是采取

TimeSpan startHour = new TimeSpan(12, 25, 43);
if (endHour.TimeOfDay > startHour)
{
...
}

... 工作起来非常简单。

一定要添加参数检查以确保您没有为 startHour 指定值 < 0 或 > 23 小时,但这一切都非常简单。

.NET 的日期和时间 API 与 Joda Time 等相比非常原始(即使在 3.5 中也是如此)——但在这种特殊情况下,我认为它还不错。

关于c# - 如何在 C# 中处理带有持续时间的实际时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1408165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com