2013-04-28 60 views
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 

這似乎是工作,但我認爲它可能對其他文化的設置搞砸了(我嘗試改變我自己的設置/格式,它仍然有效,但不知道這是爲什麼上班

回答

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) 

它的工作原理,但不是很漂亮,但是,安全並不是問題,因爲只有一個客戶會使用或需要該軟件。

+0

其實,我認爲這樣更好,並避免了文本標籤的垃圾。 'Dim nowdate As Date = Format(Date.Today(),「MM/dd/yyyy」)' – Cory 2013-04-28 19:18:27

相關問題