我正在尝试编写一个函数,将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对象中计算秒数?
此外,如果我要计算公元0年以来的所有秒数,那么在使用C#编码时返回类型应该是int64吗?