K3JAE Ответов: 1

Преобразование и сравнение времени


У меня есть следующий пример:

01 авг 2016 @ 14: 16 в виде текстовой строки в текстовом поле. Он не форматируется как поле datetime, а просто как текстовая строка. Это связано с тем, как пользователи вводят данные в PDF-файл (как показано выше), который импортируется в виде текстовой строки...

Первое, что я пытаюсь сделать, это убрать дату и иметь только время (14:16) и назвать это "result1". Я считаю, что победил это (см. код ниже).

Затем я хочу взять этот результат (14: 16) и сравнить его с фактическим форматированным полем datetime, которое содержит только время без даты, например 14:00, и назову его "result3". Я ищу, чтобы увидеть, если "result3" больше (или после) "result1".

Моя главная проблема заключается в том, чтобы правильно получить поле time only (result3), чтобы показать только время. Она возвращается следующем при запуске отладки через:
System.Windows.Forms.TextBox, Text: 14:00
и мне нужно, чтобы он возвращался только "14: 00" без "системы".Окна.Формы.Текстовое Поле, Текст:".

Я подозреваю, что один из двух результатов отформатирован неправильно, но не уверен, какой именно. Должен ли я преобразовать result1 в строку datetime после извлечения нужной мне части или я должен преобразовать result3 в текстовую строку? Я думаю, что и то, и другое должно быть datetime, так как я ищу, чтобы увидеть, является ли result3 после result1.

Я уверен, что это проблема форматирования, но не уверен, как правильно прочитать поле datetime (result3) и/или преобразовать текстовое поле (result1) в результат datetime (только время) для сравнения.

Блин, надеюсь, в этом есть смысл...

последняя просьба: Правильно ли я провожу сравнение случаев?

Что я уже пробовал:

Private Sub tb01Time_TextChanged(sender As Object, e As EventArgs) Handles tb01Time.TextChanged
        Dim result1 As String = tb01Time.ToString
        Dim result2 As String = LoadRight(result1, 5)

        Dim result3 As String = tbShipArriveTime.ToString

        Dim late As String

        If result3 > result2 Then
            late = "True"
        Else
            late = "False"
        End If

        Select Case tbShipArriveTime.ToString
            Case = "True" : tb01Time.BackColor = Color.Red
                tb01Time.ForeColor = Color.White
            Case Else : tb01Time.BackColor = Color.White
                tb01Time.ForeColor = Color.Black
        End Select

    End Sub

1 Ответов

Рейтинг:
7

K3JAE

Решил свою собственную проблему....

Я использовал неправильную переменную в моем случае - нужно было поставить late в качестве моей переменной вместо tbShipArriveTime.


Patrice T

Примите свое собственное решение, чтобы закрыть вопрос.
Воспользуйся Принять ответ чтобы закрыть вопрос.