我想在我的应用程序中基于日期实现一个killswitch,以便它在某个时间之前停止工作。因此我想出了日期(例如2019年2月1日)。一旦系统的日期(运行我的应用程序的日期)大于Killswitch的日期,我希望它停止工作。我尝试过:
If Today.Date.toString() >= "02/01/2019" Then
End
Else
...
那没有用。我的问题是每台计算机上的日期格式都不同,有些具有 MM / dd / YYYY ,有些具有 dd / MM / YYYY ,而某些 YYYY / MM / dd 。仍然可以将所有日期转换为通用格式并进行比较吗?
答案 0 :(得分:2)
不要对您的日期进行硬编码;那么格式就不会成为问题。而是使用DateTime类的构造函数来创建具有特定年份,月份和日期的终止目标:
Dim targetDT As New DateTime(2019, 2, 1)
If DateTime.Today > targetDT Then
' ... do something in here ...
End If
答案 1 :(得分:0)
如果所有日期都是标准格式,则可以使用DateTime.Parse。届时,您将比较两个DateTime值,然后大于或等于。
If DateTime.Now >= DateTime.Parse("02/01/2019") Then
Environment.End
End If
为了手动解析日期,您将需要知道日期所采用的格式,因为您需要根据它的片段来创建DateTime对象。这是一个示例:
Dim strDate As String = "12/28/2018"
Dim year As Integer = Integer.Parse(strDate.Substring(6, 4))
Dim month As Integer = Integer.Parse(strDate.Substring(0, 2))
Dim day As Integer = Integer.Parse(strDate.Substring(3, 2))
Dim d = New DateTime(year, month, day)
答案 2 :(得分:0)
您可以使用此
Dim currentDate As DateTime = DateTime.Now
If currentDate.Month >= 2 And currentDate.Day >= 1 And currentDate.Year >= 2019
End
End If
答案 3 :(得分:0)
另一种方法,在线注释和解释。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If DateTime.Now > ExpireDate Then
MessageBox.Show("Your trial period has expired")
Close()
End If
End Sub
Private ExpireDate As Date
Private Sub OPCode3()
'run once at first startup
'Store As DateTime, then you can compare DateTime withour converserion or parsing
ExpireDate = DateTime.Now.AddMonths(3)
End Sub