Как преобразовать даты в целое число в C#?
Что я хочу сделать, так это показать ход обратного отсчета на индикаторе прогресса, но я не знаю, как преобразовать даты в целые числа, чтобы вычислить процент для индикатора прогресса?
Спасибо.
Что я уже пробовал:
public Form1() { Timer t = new Timer(); t.Interval = 1000; t.Tick += countdown; t.Start(); } private void countdown(object sender, EventArgs e) { DateTime endDate = DateTime.Parse("12/24/2017"); DateTime startDate = DateTime.Now; TimeSpan timeDiff = endDate - startDate; int timeDiffPercent = (timeDiff / endDate) * 100; //How? timeLeft.Text = dateDiff; timeLeftBar.Value = timeDiffPercent; }
Richard MacCutchan
Сначала вам нужно знать общее значение, которое вы должны использовать для расчета процента во время выполнения.
F-ES Sitecore
Если конечная дата-24 декабря 2017 года, а сегодня-4 июля, то какой это процент? Какой процент будет 1 декабря? Проценты работают с числами, потому что мы можем предположить нижнюю границу 0. Правда, с датами....что такое нижняя граница? 1 января для рассматриваемого года (1/1/17 в вашем примере). 1/1/1900? 1/1/0000? 4 миллиарда лет назад, когда началось время? Чтобы быть процентом вдоль пути, вам нужны верхняя граница, нижняя граница и текущее значение. Мы знаем верхнюю границу и текущее значение, но какова ваша нижняя граница?
Tamika Reisman
Извините, ребята, я забыл отметить, что моя нижняя граница-это первый день года, который составляет 0% в секундах.
F-ES Sitecore
Взгляните на решение, которое я опубликовал
Ralf Meier
Какая часть промежутка времени вас интересует ? Миллисекунды, Секунды, Минуты ...? Или что-то особенное ?
Если вы хотите вычислить процентное значение-на что вы ссылаетесь ? Это может быть только частное от вашей временной части и значение, которое вы ожидаете ...
Tamika Reisman
Это в считанные секунды, в первый день года.
Ralf Meier
Таким образом, Вы должны вычислить второе значение с первого дня года, а также с фактической даты и с последней даты года.
Теперь ваш процент равен actDate_SecondValue / (lastDay_SecondValue - fisrtDay_SecondValue)... это все...