c# – 如何处理Rounding-TimeSpan?
发布时间:2020-12-15 18:24:02 所属栏目:百科 来源:网络整理
导读:我取两个DateTime字段之间的区别,并将其存储在TimeSpan变量中,现在我必须通过以下规则来舍入TimeSpan: 如果TimeSpan中的分钟数小于30,那么分钟和秒必须设置为零, 如果TimeSpan中的分钟数等于或大于30,则小时数必须增加1,分钟数和秒数必须设置为零. TimeSpan
我取两个DateTime字段之间的区别,并将其存储在TimeSpan变量中,现在我必须通过以下规则来舍入TimeSpan:
如果TimeSpan中的分钟数小于30,那么分钟和秒必须设置为零, TimeSpan也可以是负值,所以在这种情况下我需要保留符号.. 如果TimeSpan不是负值,我可以达到要求,虽然我已经编写了一个代码,我对它的低效率感到不满意,因为它更笨重. 请建议我一种更简单有效的方法. 感谢和问候, 这是我的代码,当TimeSpan不是负值时工作正常. TimeSpan time_span = endTime.Subtract(startTime); TimeSpan time_span1; if (time_span.Minutes >= 30) { time_span1 = new TimeSpan(time_span.Hours + 1,0); } else { time_span1 = new TimeSpan(time_span.Hours,0); } time_span1将包含结果.. 解决方法
怎么样:
public static TimeSpan Round(TimeSpan input) { if (input < TimeSpan.Zero) { return -Round(-input); } int hours = (int) input.TotalHours; if (input.Minutes >= 30) { hours++; } return TimeSpan.FromHours(hours); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |