В 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);