В.Б. Истекшее время метод путаницы

Я должен кодировать программу, которая находит истекшее время, когда я ввожу 2 раза в 2 текстовых поля, одно текстовое поле будет временем начала, другое текстовое поле будет временем окончания, я теряюсь в том, как я это делаю.

пример
Время начала 12:45
время окончания 13:15
тогда истекшее время должно быть 30 минут


Public Class Form1 

    Dim starttime As DateTime 
    Dim endtime As DateTime 
    Dim timetaken As TimeSpan 
    Private Sub btnOK_Click(sender As Object, 
        e As EventArgs) Handles btnOK.Click 
        starttime = txtStart.Text 
        endtime = txtEnd.Text 
    End Sub 

End Class

2 ответа

Решение

Быстро из моей головы:

Option Strict On 'every good programmer does this

Public Class Form1 

    Private starttime As DateTime 'Please use Dim only in functions or subs
    Private endtime As DateTime 
    Private timetaken As TimeSpan 

    Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click 
        starttime = DateTime.Parse(txtStart.Text) 'Parse the string input
        endtime = DateTime.Parse(txtEnd.Text)
        timetaken = endtime - starttime
    End Sub 

End Class

Конечно, это сильно зависит от того, какая строка может быть проанализирована в DateTime пример. Это даже зависит от вашей системной культуры. Посмотрите https://msdn.microsoft.com/en-us/library/System.DateTime.Parse(v=vs.110).aspx для получения дополнительной информации о том, как должна выглядеть входная строка. Если дней будет достаточно, вы можете вместо этого использовать элемент управления DatePicker (который, к сожалению, не поддерживает ваши потребности в разы).

Вы можете предоставить формат входной строки с DateTime.ParseExact насколько мне известно

Чтобы поймать ошибки, когда ввод текста в текстовых полях не может быть проанализирован, используйте DateTime.TryParse,

Во-первых, используйте Dateime.Parse или же DateTime.ParseExact преобразовать string в текстовых полях в DateTime s,

Dim start = DateTime.Parse(txtStart.Text)

Тогда вы можете найти разницу между двумя DateTime с помощью Subtract метод, который возвращает TimeSpan,

Dim difference = end.Subtract(start)
Другие вопросы по тегам