2010-04-09 3 views
2

У меня есть переменная [Dim MyTime = «12:30:00 AM»]вычитая одно время от другого в vb.net

я хочу, чтобы вычесть Mytime из TimeOfDay и я также хочу, чтобы получить разницу в виде целое значение ... как я должен делать это ..

я добавил следующий код

Dim mytime = DateTime.Parse("1:16:00 AM") 
Dim result = TimeOfDay - mytime 

dim finalresult = result.Seconds 

но это дает мне отрицательные значения

ответ

4

Easy:

Во-первых, преобразовать myTime к DateTime - либо непосредственно:

Dim myTime = #12:30:00 AM# 

или путем разбора строки:

Dim myTime = DateTime.Parse("12:30:00 AM") 

Dim result = DateTime.TimeOfDay - myTime 

Но вы не получите целое - как это должно работать? Что должно представлять целое число? Вместо этого вы получаете TimeSpan.

Если вам нужно иметь разницу в секундах, вы можете извлечь, что, конечно же:

Dim differenceInSeconds = result.Seconds 

То же самое за несколько минут или любой другой компонент.

+0

но это дает мне следующий результат Оператора ' - 'не определен для типов «String» и «Date». –

+0

@testkhan: Почему строка? Я бы хотел вычесть два 'DateTime'. Ах, я понял ... см. Мой обновленный ответ. –

0
Dim difference As TimeSpan = DateTime.TimeOfDay - DateTime.Parse(mytime) 
+0

Результатом вычитания двух 'DateTime' является' TimeSpan', а не 'DateTime'. –

+0

@ Рыжеволосый единорог Упс ... моя ошибка. Обновлен, исправлен порядок вычитания и избавлен от моей C# -y-двоеточия. –

0

Кроме того, я думаю, что вы ищете общее количество секунд, так

Dim differenceInSeconds = result.Seconds 

следует читать:

Dim differenceInSeconds = result.TotalSeconds 
Смежные вопросы