2012-06-25 3 views
0

У меня есть поле «Время» в таблице данных, содержащей данные разных сотрудников, таких как 12:75 (12 часов и 75 минут), в то время как я хочу, чтобы это как 13:15 минут. Я хочу получить общую сумму за часы. Как я могу получить такой результат в VB.NET 2010. Пожалуйста, помогитеХотите получить сумму поля времени

+1

Вы уверены, что это не 12,75, который будет означать 12h45m? Каков тип свойства OverTime? –

+0

это как 12:75 означает 12 ч и 75 мин, но должно показаться как 13:15. 75 минут, которые должны быть разбиты на 60 средних 1 час, этот час добавит в 12, чтобы он показывал 13:15 (13 часов 15 м). это строковое поле в базе данных. –

+0

Похоже, вам нужны два поля для хранения двух отдельных значений. Сочетание разных данных в одном и том же поле разбивает 1-ю нормальную форму и очень ... тревожный дизайн –

ответ

0

Ответ прост. Возьмите минутную часть и разделите ее на 60. Сумма (без десятичной части) - это количество часов, и вы добавляете ее к числу часов. Десятичная часть умножается на 60, и это ваши минуты.

Чтобы закодировать его в VB, нам нужно знать тип свойства OverTime, но я также думаю, что вы должны написать этот код самостоятельно, поскольку это довольно просто. Вы можете вернуться, когда у вас есть конкретная проблема.

+0

Чанч Михал предоставил правильную идею для решения этой задачи. Я благодарен вам. –

+0

Проблема по-прежнему остается проблемой, данный метод работает только 24 часа в сутки. когда работник получает со временем 50 часов и 75 минут, тогда он должен показывать 51 час и 15 минут. –

+0

Это невозможно. Он будет работать с любым количеством часов и минут, если вы также не хотите работать с днями. Но вы упоминали только часы и минуты. Отправьте свой код, чтобы мы могли понять, в чем проблема. –

0

Вы можете использовать

DateTime.AddMinutes 

функцию, где вы зададите 75, и это даст вам правильное время.

или вы можете использовать

var ts = new TimeSpan(12, 75, 0);//h,m,s 

образец кусок кода будет,

 var ts = new TimeSpan(25, 75, 0); 
     var total = ts.Days*24 + ts.Hours + ":" + ts.Minutes; 
+0

Не могли бы вы описать, что такое 0 при запуске и 0 на конце? –

+0

его справедливая часть дня, на самом деле, если вы посмотрите на http://msdn.microsoft.com/en-us/library/system.timespan.aspx, первый аргумент - это часть дня. Ну, я просто посмотрю на документацию и обнаружил, что мне не нужно предоставлять эту часть дня. – paragy

+0

Большое спасибо, у вас есть правильная идея –

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