C# - разница между двумя датами?
Я пытаюсь вычислить разницу между двумя датами. Вот что я сейчас использую:
int currentyear = DateTime.Now.Year;
DateTime now = DateTime.Now;
DateTime then = new DateTime(currentyear, 12, 26);
TimeSpan diff = now - then;
int days = diff.Days;
label1.Text = days.ToString() + " Days Until Christmas";
Все работает нормально, за исключением того, что это выходной. Я предполагаю, что это потому, что он не считает ничего меньше, чем 24 часа в сутки. Есть ли способ заставить его сделать это? Спасибо.
4 ответов:
Вопрос скорее философский: если бы Рождество было завтра, вы бы посчитали, что осталось 1 день или 0 дней? Если вы введете в расчет завтрашний день, то ответ будет равен 0.
Ваша проблема исчезнет, если вы замените свой:
DateTime.NowС:
DateTime.TodayПоскольку ваш расчет разницы будет работать в течение целых дней.
Обычно я использую следующий код для получения выходных данных в соответствии с назначением устройства, в котором требуется вывод:
DateTime[] dd = new DateTime[] { new DateTime(2014, 01, 10, 10, 15, 01),new DateTime(2014, 01, 10, 10, 10, 10) }; int x = Convert.ToInt32((dd[0] - dd[1]).TotalMinutes); String unit = "days"; if (x / 60 == 0) { unit = "minutes"; } else if (x / 60 / 24 == 0) { unit = "hours"; x = x / 60; } else { x = x / (60 * 24); } Console.WriteLine(x + " " + unit);
Comments