1

我需要为我的应用程序设置一个到期日期(我知道它可以简单地被黑客入侵,但考虑到将要使用它的人,这真的不是问题或担心。我只需要每年到期)。我的代码似乎可以工作,但我想确保它适用于其他文化设置。我尝试将其转换为不变量,但尝试说它无法转换为日期类型时出错。这是我所拥有的:

 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

这似乎可行,但我认为它可能会破坏其他文化设置(我尝试更改自己的设置/格式,但它仍然有效,但不知道为什么。这行得通吗?

4

1 回答 1

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)

它有效,但不漂亮。不过,这里再次强调安全性不是问题,因为只有一个客户会使用或需要该软件。

于 2013-04-28T18:22:15.887 回答