gpt4 book ai didi

c# - 将 DateTime.Now 转换为秒

转载 作者:可可西里 更新时间:2023-11-01 03:11:44 24 4
gpt4 key购买 nike

我正在尝试编写一个函数,将 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?

最佳答案

DateTime类型支持 comparison operators :

if (dateTimeA > dateTimeB)
{
...

这也适用于 DateTime DateTime.AddSeconds 返回的值:

if (dateTimeA.AddSeconds(42) > dateTimeB)
{
...

如果您真的想要自 01/01/0001 00:00:00 以来经过的秒数,您可以计算两个 DateTime 值之间的差值。结果 TimeSpan值有一个 TotalSeconds属性:

double result = DateTime.Now.Subtract(DateTime.MinValue).TotalSeconds;

关于c# - 将 DateTime.Now 转换为秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4109798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com