C#中小时和分钟的时间跨度计算

发布于 2024-10-01 22:41:07 字数 718 浏览 5 评论 0原文

最终结果应向用户显示开始时间和结束时间之间的时间跨度。(例如,早上 06:30 开始工作,晚上 18:30 结束,显示的结果应为 12 小时)。

现在,我必须使用 DateTime 参数;从时间和到时间 每个 DateTime 参数都具有 24 小时格式的小时,并且还可能具有 30 分钟的分钟值。

我愿意做的是获取这些 DateTime 参数之间的时间跨度。 对于我使用此方法的时间:

Public TimeSpan GetHourSpan(DateTime fromTime, DateTime toTime)
{
    TimeSpan fromH = TimeSpan.FromHours(fromTime.Hour);
       TimeSpan toH = TimeSpan.FromHours(toTime.Hour);
       TimeSpan hourTotalSpan = toH.Subtract(fromH);
    return hourTotalSpan;
}

这很棒,我的问题是获取以分钟为单位的时间跨度(如果有),最后将其添加到 TimeSpan 对象中进行显示。

如果上述方式都有 30 分钟的时间跨度,则将返回 0,然后我必须开始检查每个参数是否在 min 属性中具有值。

难道没有一种简单的方法可以将小时和分钟的时间跨度组合在一起吗?

The final result should display the user the time span between the start hour and the end hour.(e.g. start work at 06:30 AM and finished at 18:30 PM, the result to display should be 12 hours).

Now, I have to DateTime parameters; fromTime and toTime
Each DateTime parameter have an hour in 24 hour format, and also might have a minutes value of 30 min.

What I willing to do is to get the time span between those DateTime parameters.
For the hours I used this method:

Public TimeSpan GetHourSpan(DateTime fromTime, DateTime toTime)
{
    TimeSpan fromH = TimeSpan.FromHours(fromTime.Hour);
       TimeSpan toH = TimeSpan.FromHours(toTime.Hour);
       TimeSpan hourTotalSpan = toH.Subtract(fromH);
    return hourTotalSpan;
}

This is great, my problem is to get the time span in minutes if there is, and finally add it to the TimeSpan object to display.

If both have 30 min time span in the above way will return 0, and than I have to start check every parameter if it have a value in the min property.

Isn't there an easy way to get time span for hours and min together?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

你没皮卡萌 2024-10-08 22:41:07
TimeSpan span = toTime - fromTime;
// Split into hours:minutes: span.Hours, span.Minutes
// Total span in hours: span.TotalHours
// Total span in minutes (hours * 60): span.TotalMinutes
TimeSpan span = toTime - fromTime;
// Split into hours:minutes: span.Hours, span.Minutes
// Total span in hours: span.TotalHours
// Total span in minutes (hours * 60): span.TotalMinutes
沫雨熙 2024-10-08 22:41:07

如果从 DateTime 中减去 DateTime,结果是 TimeSpan。所以你可以简单地采取

TimeSpan result = toTime-fromTime;
int hours = result.Hours;
int minutes = result.Minutes;

If you deduct a DateTime from a DateTime, the result is a a TimeSpan. So you can simply take

TimeSpan result = toTime-fromTime;
int hours = result.Hours;
int minutes = result.Minutes;
蝶舞 2024-10-08 22:41:07
TimeSpan span = toTime - fromTime;
TimeSpan span = toTime - fromTime;
烟凡古楼 2024-10-08 22:41:07
public double DurationinMins(DateTime startDt, DateTime endDt)
    {
        var ts = endDt.Subtract(startDt);
        return ts.TotalMinutes;
    }
public double DurationinMins(DateTime startDt, DateTime endDt)
    {
        var ts = endDt.Subtract(startDt);
        return ts.TotalMinutes;
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文