用户的不同日期时间格式导致错误
Different date time format of the user causing an error
我的应用程序根据我的代码所基于的不同 date/time 格式在不同的安装上给出错误
例如下面的原始代码;
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
在其中一台用户计算机上出现以下错误;
您的应用程序中发生了未处理的异常...如果您单击退出,应用程序将立即关闭。
类型为 'Date' 的字符串“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
但在我的电脑上没有报错。
我的问题是;如何处理这个错误,这将阻止不同计算机上的所有不同日期和时间格式
不要使用字符串填充日期变量,使用日期。
Dim BaslangicTarihi = New Datetime(1996, 04, 16)
我建议你打开 Option Strict。
此外,您应该正确使用 DayOfWeek 的枚举而不是字符串。
If Now.DayOfWeek = DayOfWeek.Saturday Then
我的应用程序根据我的代码所基于的不同 date/time 格式在不同的安装上给出错误
例如下面的原始代码;
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
在其中一台用户计算机上出现以下错误;
您的应用程序中发生了未处理的异常...如果您单击退出,应用程序将立即关闭。 类型为 'Date' 的字符串“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
但在我的电脑上没有报错。
我的问题是;如何处理这个错误,这将阻止不同计算机上的所有不同日期和时间格式
不要使用字符串填充日期变量,使用日期。
Dim BaslangicTarihi = New Datetime(1996, 04, 16)
我建议你打开 Option Strict。
此外,您应该正确使用 DayOfWeek 的枚举而不是字符串。
If Now.DayOfWeek = DayOfWeek.Saturday Then