gpt4 book ai didi

c# - 比较两个 DateTimeOffset 对象

转载 作者:太空狗 更新时间:2023-10-30 00:43:09 25 4
gpt4 key购买 nike

我想要两个的差DateTimeOffset以天为单位的对象(例如检查差异是否小于 40 天)。

我知道可以通过将其更改为 FileTime 来完成,但想知道是否有更好的方法。

最佳答案

最简单的方法是相互减去偏移量。它返回一个 TimeSpan,您可以与之进行比较。

var timespan = DateTimeOffset1 - DateTimeOffset2;
// timespan < TimeSpan.FromDays(40);
// timespan.Days < 40

我倾向于将其添加到另一个传入 TimeSpan 的方法中,这样您就不会受限于几天或几分钟,而只是一个时间跨度。像这样的东西:

bool IsLaterThan(DateTimeOffset first, DateTimeOffset second, TimeSpan diff){}

为了好玩,如果你喜欢流畅风格的代码(除了测试和配置之外,我不是它的 super 粉丝)

public static class TimeExtensions
{
public static TimeSpan To(this DateTimeOffset first, DateTimeOffset second)
{
return first - second;
}

public static bool IsShorterThan(this TimeSpan timeSpan, TimeSpan amount)
{
return timeSpan > amount;
}

public static bool IsLongerThan(this TimeSpan timeSpan, TimeSpan amount)
{
return timeSpan < amount;
}
}

将允许这样的事情:

var startDate = DateTimeOffset.Parse("08/12/2012 12:00:00");
var now = DateTimeOffset.UtcNow;

if (startDate.To(now).IsShorterThan(TimeSpan.FromDays(40)))
{
Console.WriteLine("Yes");
}

内容类似于“如果从开始日期到现在的时间短于 40 天”。

关于c# - 比较两个 DateTimeOffset 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12083422/

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