C # TimeSpan два дня равны одинаковому промежутку времени? - PullRequest
0 голосов
/ 28 сентября 2011

Таким образом, у меня есть ситуация, когда мне нужно вызвать определенные события в определенный день, я подумал, что буду использовать 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

ДАТА ИСПЫТАНИЯ 28.11.2011 10:55:43

Это потому, что я не убираю время в DateTime.Now ??Любая помощь или указатели будут с благодарностью.

Спасибо !!!

Ответы [ 2 ]

2 голосов
/ 28 сентября 2011

Вы неправильно понимаете, что такое свойство Days, я думаю. Я думаю, что вы хотите TotalDays.

1 голос
/ 28 сентября 2011

Если вы хотите иметь общее количество дней между двумя DateTime, вам нужно использовать TotalDays TimeSpan.

TotalDays, TotalMinutes, TotalHours, TotalMilliseconds дают вам общее количество времени между промежутком времени.

С другой стороны, Days, Minutes, Hours and Milliseconds дают вам текущий компонентinstance.

Итак, вам нужно изменить пример, чтобы использовать методы 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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...