2013-09-15 5 views
-1

тружусь по системе посещаемости в asp.net, у меня есть две метки и Textboxes:Расчет общего количества часов numbersof для посещения

  1. textBox1 для ввода времени.
  2. Textbox2 для ввода в отпуск.

Оба пользователя вводятся в терминах, например: Время входа: (7:50 утра), а время отпуска: (6:15 вечера). Теперь я хочу рассчитать общее количество часов для введенных записей. имея в виду в тот день, когда у него 30 минут перерыва. Итак, как это сделать?

+0

Это будет зависеть от используемого вами механизма базы данных. –

ответ

2
  1. Преобразовать TextBox1.Text в System.DateTime entry
  2. Преобразование TextBox2.Text в System.DateTime leave
  3. Вычислить Timespan t = leave - entry - Timespan.FromMinutes(30)
  4. Получить t.TotalHours()

Для преобразования времени строку в DateTime использования DateTime.ParseExact (Why can’t DateTime.ParseExact() parse the AM/PM in “4/4/2010 4:20:00 PM” using “M'/'d'/'yyyy H':'mm':'ss' 'tt”)

var ci = new CultureInfo("en-US"); 

    DateTime entry = DateTime.ParseExact("7:50 AM", "h:mm tt", ci); 
    DateTime leave = DateTime.ParseExact("6:15 PM", "h:mm tt", ci); 

    TimeSpan t = leave - entry - TimeSpan.FromMinutes(30); 

    var totalTime = string.Format("{0:D2}h:{1:D2}m", t.Hours, t.Minutes); 
+0

Вопрос говорит, что общее количество часов. –

+0

@ DanBracuk Я не понимаю, вы предлагаете вместо этого использовать 't.Hours()'? –

+0

Чтобы добавить некоторое форматирование, вы можете использовать 'var totalTime = string.Format (" {0: D2} h: {1: D2} m ", t.Hours, t.Minutes);' получать часы и минуты. – christiandev

Смежные вопросы