微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 转换DateTime.Now到Seconds

我试图编写一个函数,将一个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 举报,一经查实,本站将立刻删除。

相关推荐