【发布时间】:2011-05-05 19:39:38
【问题描述】:
我正在尝试编写一个函数,它将 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# 编码,如果我要计算自 0 AD 以来的所有秒数,返回类型是否应该是 int64?
【问题讨论】:
-
对不起,如果我多管闲事,但您为什么要比较秒而不是内置日期计算工具?
-
我试图从上面提到的两个对象之一中减去一个以秒为单位的整数变量。