gpt4 book ai didi

c# - 如何处理 Rounding-off TimeSpan?

转载 作者:太空狗 更新时间:2023-10-29 20:53:38 25 4
gpt4 key购买 nike

我取两个 DateTime 字段之间的差值,并将其存储在 TimeSpan 变量中,现在我必须按照以下规则对 TimeSpan 进行四舍五入:

如果 TimeSpan 中的分钟数小于 30,则 Minutes 和 Seconds 必须设置为零,
如果 TimeSpan 中的分钟数等于或大于 30,则小时数必须递增 1,并且分钟数和秒数必须设置为零。

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, 0);
}
else
{
time_span1 = new TimeSpan(time_span.Hours, 0, 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);
}

关于c# - 如何处理 Rounding-off TimeSpan?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2714221/

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