我有一种方法可以计算两次之间的分钟数。像这样:
DateTime UserLocalTime = DateTime.UtcNow.ConvertToUserTime(UserTimezoneID);
double TheOffset = (UserLocalTime - DateTime.UtcNow).TotalMinutes;
return TheOffset.ToString();
问题在于它返回类似于119.83723的东西,因为它正在计算分钟和秒等等。
我该如何解决这个问题?我担心有时它也会返回120.11233,所以四舍五入也可能都没有完全帮助。
感谢您的建议。
Update1:(int)(Math.Round((UserLocalTime - DateTime.UtcNow).TotalMinutes));返回119。
Update2:我试过这个,它看起来有效,但是当偏移很奇怪时会失败(有时它可能是5:30,答案应该是330分钟)
int TheOffset = (int)(Math.Round((UserLocalTime - DateTime.UtcNow).TotalHours));
TheOffset = TheOffset * 60;
答案 0 :(得分:2)
Minutes
代替TotalMinutes
。(int)TotalMinutes
。它会圆了下来。你能澄清一下吗?舍入我害怕有时候它也会返回120.11233,所以四舍五入也可能不完全有帮助。
120.11233
将导致120
......我认为这就是你想要的,对吗?
答案 1 :(得分:0)
您可以使用:
Math.Ceiling()获取大于或等于指定数字的最小整数值。
119,895 - >楼层= 119,天花板= 120,舍入= 120
119,175 - >楼层= 119,天花板= 120,回合= 119
将所需功能应用于TheOffset。
如果你需要天花板或地板,你可能应该反转使用的函数,如果是负偏移或正偏移。
所以,你决定要得到什么。