所以我有一种情况需要在特定日期触发某些事件,我以为我会使用TimeSpan来获取特定日期,这里的想法是TimeSpan.Days == 0我触发我的事件,如果它少于或大于0然后什么都不做...... 但我认为这会有效,但两天给我0 这就是我在做的事情。
TimeSpan timeSpanDays = DateTime.Parse("12/13/2011").Subtract(DateTime.Now.AddDays(76));
TimeSpan timeSpanDays1 = DateTime.Parse("12/14/2011").Subtract(DateTime.Now.AddDays(76));
TimeSpan timeSpanMonths = DateTime.Parse("2011-11-28").Subtract(DateTime.Now.AddMonths(2));
TimeSpan timeSpanMonths1 = DateTime.Parse("2011-11-29").Subtract(DateTime.Now.AddMonths(2));
Console.WriteLine("14 days after issuance: {0}",timeSpanDays.Days);
Console.WriteLine("14 days after issuance: {0}",timeSpanDays1.Days);
Console.WriteLine("\r\n");
Console.WriteLine("22 months after issuance: {0}",timeSpanMonths.Days);
Console.WriteLine("22 months after issuance: {0}",timeSpanMonths1.Days);
Console.WriteLine("\r\n");
Console.WriteLine("TESTING DATE {0}",DateTime.Now.AddMonths(2));
这是结果
发布后14天:0
发布后14天:0
发布后22个月:0
发布后22个月:0
测试日期11/28/2011 10:55:43 AM
这是因为我没有在DateTime上剥离时间。现在? 任何帮助或指示将不胜感激。
感谢!!!
答案 0 :(得分:2)
你误解我认为Days
属性是什么。我想你想要的是TotalDays
。
答案 1 :(得分:1)
如果您希望在两个DateTime之间获得总天数,则需要使用TimeSpan的TotalDays。
TotalDays,TotalMinutes,TotalHours,TotalMilliseconds为您提供时间跨度之间的总时间。
另一方面,Days,Minutes,Hours和Milliseconds为您提供实例的当前组件。
因此,您需要更改示例以使用Total方法。
TimeSpan timeSpanDays = DateTime.Parse("12/13/2011").Subtract(DateTime.Now.AddDays(76));
TimeSpan timeSpanDays1 = DateTime.Parse("12/14/2011").Subtract(DateTime.Now.AddDays(76));
TimeSpan timeSpanMonths = DateTime.Parse("2011-11-28").Subtract(DateTime.Now.AddMonths(2));
TimeSpan timeSpanMonths1 = DateTime.Parse("2011-11-29").Subtract(DateTime.Now.AddMonths(2));
Console.WriteLine("14 days after issuance: {0}",timeSpanDays.TotalDays);
Console.WriteLine("14 days after issuance: {0}",timeSpanDays1.TotalDays);
Console.WriteLine("\r\n");
Console.WriteLine("22 months after issuance: {0}",timeSpanMonths.TotalDays);
Console.WriteLine("22 months after issuance: {0}",timeSpanMonths1.TotalDays);
Console.WriteLine("\r\n");
Console.WriteLine("TESTING DATE {0}",DateTime.Now.AddMonths(2));