Другой формат даты и времени пользователя, вызвавший ошибку - PullRequest
0 голосов
/ 02 октября 2018

Мое приложение выдает ошибку при другой установке в зависимости от их другого формата даты / времени, на котором мои коды основаны на

, например, ниже исходного кода;

Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DTPTarihSec.ValueChanged
    Dim BaslangicTarihi As Date
    Dim BitisTarihi As Date


    BaslangicTarihi = "16/04/1996" 'TCMB kayıtları en eski bu tarihe kadar
    BitisTarihi = Date.Today

    If hatasayac = False Then
        SecilenTarih = DTPTarihSec.Value
    End If

    hatasayac = False

    If (SecilenTarih > BitisTarihi) Then

        MsgBox("İleri tarihli kur bilgileri bulunmamaktadır. Lütfen uygun bir tarih giriniz. " & vbCrLf & vbCrLf &
               "Kurların geçerli olduğu en son tarihe yönlendirildiniz !", vbOKOnly + vbInformation, "TCMB Döviz Kurları")
        hatasayac = True
        If Now.DayOfWeek.ToString = "Cumartesi" Or Now.DayOfWeek.ToString = "Saturday" Then
            SecilenTarih = Date.Today.AddDays(-1)
            DTPTarihSec.Value = Date.Today.AddDays(-1)

        ElseIf Now.DayOfWeek.ToString = "Pazar" Or Now.DayOfWeek.ToString = "Sunday" Then
            SecilenTarih = Date.Today.AddDays(-2)
            DTPTarihSec.Value = Date.Today.AddDays(-2)

        Else
            SecilenTarih = Date.Today
            DTPTarihSec.Value = Date.Today

        End If


    End If

дает следующееошибка на одном из пользовательских компьютеров;

Произошло необработанное исключение в вашем приложении ... Если вы нажмете Выход, приложение будет немедленно закрыто.Разговор из строки «16/04/1996» по типу «Дата» недопустим.

Это из-за следующей строки кода:

 BaslangicTarihi = "16/04/1996" 'TCMB kayıtları en eski bu tarihe kadar
BitisTarihi = Date.Today

If hatasayac = False Then
    SecilenTarih = DTPTarihSec.Value
End If 

, ноэто не выдает ошибку на моем компьютере.

Мой вопрос о том, как справиться с этой ошибкой, которая предотвратит разный формат даты и времени на другом компьютере

1 Ответ

0 голосов
/ 02 октября 2018

Не используйте строку для заполнения переменной даты, используйте дату.

Dim BaslangicTarihi = New Datetime(1996, 04, 16)

Я бы посоветовал вам включить Option Strict On.

Кроме того, вы должны правильно использовать перечисление для DayOfWeek вместо строки.

If Now.DayOfWeek = Day​OfWeek.Saturday Then
...