我试图编写一个函数,将一个DateTime.Now实例转换成它所表示的秒数,以便我可以将它与另一个DateTime实例进行比较.这是我目前拥有的:
public static int convertDateTimetoSeconds(DateTime dateTimetoConvert) { int secsInAMin = 60; int secsInAnHour = 60 * secsInAMin; int secsInADay = 24 * secsInAnHour; double secsInAYear = (int)365.25 * secsInADay; int totalSeconds = (int)(dateTimetoConvert.Year * secsInAYear) + (dateTimetoConvert.DayOfYear * secsInADay) + (dateTimetoConvert.Hour * secsInAnHour) + (dateTimetoConvert.Minute * secsInAMin) + dateTimetoConvert.Second; return totalSeconds; }
我意识到我在一年中截断了几秒钟的计算,但是我不需要我的计算是精确的.我真的想知道我用来计算秒数的方法是否正确.
有没有人有任何可以更好地计算从DateTime对象给出的秒数?
此外,如果我在C#中编码,如果我要计算自AD以来的所有秒钟,返回类型是int64吗?
解决方法
DateTime型支持
comparison operators:
if (dateTimeA > dateTimeB) { ...
这也适用于DateTime.AddSeconds返回的DateTime个值:
if (dateTimeA.AddSeconds(42) > dateTimeB) { ...
如果您确实希望自01/01/0001 00:00:00之后经过的秒数,您可以计算两个DateTime值之间的差异.结果TimeSpan的价值有TotalSeconds属性:
double result = DateTime.Now.Subtract(DateTime.MinValue).TotalSeconds;
原文地址:https://www.jb51.cc/csharp/95652.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。