c# – 转换DateTime.Now到Seconds

前端之家收集整理的这篇文章主要介绍了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;

猜你在找的C#相关文章