我需要为我的应用程序设置一个到期日期(我知道它可以被简单地入侵,但这确实不是一个问题或担心,因为将要使用它的人。我只需要每年到期)。我有代码似乎工作,但我想确保它适用于其他文化设置。我尝试将其转换为不变量,但我尝试说它无法转换为日期类型时出错。这就是我所拥有的:
Private Sub expcheck()
Try
Dim format As Date = #5/1/2013#
Dim edate As Date = format.ToString()
Dim daysleft As Integer = DateDiff(DateInterval.Day, Now, edate)
If Date.Now > edate Then
MsgBox("This program was valid up to " & edate & " and will now close")
Application.Exit()
End If
If daysleft < 30 Then
MsgBox("This program expires on " & edate & vbNewLine & "You have " & daysleft & " Days left." & vbNewLine & "Export your work before expiry.")
End If
Catch e As Exception
MsgBox(e.Message)
End Try
End Sub
这似乎有效,但我认为它可能搞砸其他文化设置(我尝试更改我自己的设置/格式,它仍然有效,但不知道为什么。这会起作用吗?
答案 0 :(得分:2)
我可能已经回答了我自己的问题。它并不漂亮,但通过使用datelabel.text = date.today.tostring("MM/dd/yyyy")
将日期写入标签
然后将代码更改为:
Dim edate As DateTime = DateTime.Parse("05/01/2013", System.Globalization.CultureInfo.InvariantCulture)
Dim nowdate As Date = Date.Parse(dateLabel.Text, System.Globalization.CultureInfo.InvariantCulture)
Dim daysleft As Integer = DateDiff(DateInterval.Day, nowdate, edate)
它有效但不漂亮。但是,安全性不是问题,因为只有一个客户端会使用或需要该软件。