C# 比较两个DateTimeOffset对象

C# 比较两个DateTimeOffset对象,c#,.net,silverlight,C#,.net,Silverlight,我希望两个对象的差值以天为单位(例如,检查差值是否小于40天) 我知道可以通过将其更改为FileTime来实现,但我想知道是否有更好的方法来实现它。最简单的方法是相互减去偏移量。它返回一个可与之比较的TimeSpan var timespan = DateTimeOffset1 - DateTimeOffset2; // timespan < TimeSpan.FromDays(40); // timespan.Days < 40 为了好玩,如果你喜欢流畅的代码(除了测试和配置之外

我希望两个对象的差值以天为单位(例如,检查差值是否小于40天)


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

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

var timespan = DateTimeOffset1 - DateTimeOffset2;
// timespan < TimeSpan.FromDays(40);
// timespan.Days < 40
为了好玩,如果你喜欢流畅的代码(除了测试和配置之外,我不是一个超级粉丝)


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

DateTimeOffset
有一个减法运算符,返回一个
TimeSpan

if((dto1 - dto2).Days < 40)
{
}
if((dto1-dto2).Days<40)
{
}

仅供参考:您发布到MSDN
DateTimeOffset
文档的链接将您的答案写在同一页上。减法:
将一个DateTimeOffset对象与另一个对象相减,并生成一个时间间隔
,甚至在页面底部包含减法示例。
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");
}
if((dto1 - dto2).Days < 40)
{
}