Преобразовать Различие между 2 разами в Миллисекунды?

Я думаю, что это - полностью вопрос персонального предпочтения и пригодности для обслуживания. Для меня Haml делает шаблоны легче читать и понять, и производительность очень приемлема. В конце язык шаблонной обработки вряд ли будет местом, где необходимо оптимизировать - более вероятные запросы базы данных, представление или объектное кэширование, и т.д.

Однако в случае шаблонов ERb, Вы получите лучшую производительность по существу бесплатно при использовании erubis.

37
задан Peter Mortensen 21 October 2009 в 09:38
поделиться

7 ответов

DateTime dt1 = DateTime.Parse(maskedTextBox1.Text);
DateTime dt2 = DateTime.Parse(maskedTextBox2.Text);
TimeSpan span = dt2 - dt1;
int ms = (int)span.TotalMilliseconds;
109
ответ дан 27 November 2019 в 04:03
поделиться

To answer the title-question:

DateTime d1 = ...;
DateTime d2 = ...;
TimeSpan diff = d2 - d1;

int millisceonds = (int) diff.TotalMilliseconds;

You can use this to set a Timer:

timer1.interval = millisceonds;
timer1.Enabled = true;

Don't forget to disable the timer when handling the tick.

But if you want an event at 12:03, just substitute DateTime.Now for d1.

But it is not clear what the exact function of textBox1 and textBox2 are.

14
ответ дан 27 November 2019 в 04:03
поделиться

Вы должны преобразовать значения текстового поля в DateTime (t1, t2), затем:

DateTime t1,t2;
t1 = DateTime.Parse(textbox1.Text);
t2 = DateTime.Parse(textbox2.Text);
int diff = ((TimeSpan)(t2 - t1)).TotalMilliseconds;

Или используйте DateTime.TryParse (textbox1, out t1); Обработка ошибок зависит от вас.

6
ответ дан 27 November 2019 в 04:03
поделиться

Если вы имеете дело только с Times и без дат вам нужно иметь дело только с TimeSpan и обрабатывать переход за полночь.

TimeSpan time1 = ...;  // assume TimeOfDay
TimeSpan time2 = ...;  // assume TimeOfDay
TimeSpan diffTime = time2 - time1;
if (time2 < time1)  // crosses over midnight
    diffTime += TimeSpan.FromTicks(TimeSpan.TicksPerDay);
int totalMilliSeconds = (int)diffTime.TotalMilliseconds;
1
ответ дан 27 November 2019 в 04:03
поделиться

Try the following:

   DateTime dtStart;
   DateTime dtEnd;

   if (DateTime.TryParse( tb1.Text, out dtStart ) && DateTime.TryParse(tb2.Text, out dtEnd ))
   {
      TimeSpan ts = dtStart - dtEnd;
      double difference = ts.TotalMilliseconds;
   }
0
ответ дан 27 November 2019 в 04:03
поделиться

Если вы просто хотите отобразить окно сообщения в 12:02, используйте таймер с задержкой, скажем, 250 мс, который постоянно проверяет, является ли текущее время 12:02. Когда это произойдет, отобразите сообщение и остановите таймер. Обратите внимание, что для этого не требуется поле времени начала (хотя вы можете использовать его для чего-то еще - я не знаю - в этом случае другой код, предоставленный вам здесь, будет полезен).

0
ответ дан 27 November 2019 в 04:03
поделиться

Try:

DateTime first;
DateTime second;

int milliSeconds = (int)((TimeSpan)(second - first)).TotalMilliseconds;
0
ответ дан 27 November 2019 в 04:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: