私は2つの元のファイルを持っています。私はそれらを暗号化するために暗号化アプリケーションを使用しています。このアプリケーションは7zipのようなこれらのファイルの最終変更日を変更するので、元のファイルの最終変更日をテキストファイルであるので、後でこの日付をテキストファイルから読み込み、上書きする前にどのファイルが新しいかを比較することができます。日付を数字に変換する
しかし、私は日付と時刻のデータ型を使いたくないので、数値に変換したいのですが、私が知っている唯一の方法はそれを二重に変換することですが失敗しました。
だから、数字を日付として保存して(もしあれば)この日付を比較して、どのファイルが新しいかを知るために再変換する方法を探しています。文字列に。
現在ファイルの最終更新日は.LastWriteTime
で、.ToOADate
を使用してダブルに変換しますが、正しい結果は得られませんでした。
私は、このコードでは問題を単純化しようとした:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim d1 As Double, d2 As Double
d1 = IO.File.GetLastWriteTime("D:\g2.xlsb").ToOADate
d2 = 42816.7630876736
Debug.Print(d1) '42816.7630876736
Debug.Print(d2) '42816.7630876736
Debug.Print(d1 = d2) 'False
End Sub
を、私はラインで、このコード行をデバッグし、その12進42816.763087673608
と番号を表示し、マウス1 d1
を置くが、私はそれを保存するときときテキストファイルは、小数点以下10桁の数字を保存します42816.7630876736
。
私の質問は、日付を数字に変換してテキストファイルに保存し、(後で)このテキストファイルからこの番号を読み取り、その日付を再作成する方法です。
彼の答え(コメント内)のおかげで、DateTime.Ticks
は、私がダブルとその無限の問題を避けるための素晴らしい解決策です。
そして、私は前のタイトルを残念に思っています(私はそれを編集しました)。
使用DateTime.Ticks代わり – Steve
@Steve(ロングティックどこかに保存された値を返しますGetTicksFromStorageと呼ばれる方法の存在を仮定して)ありがとう非常に「DateTime.Ticks」は私が探していたものです。それは(ダブルとその問題)よりずっと良いです。 – Fadi
また、テキストファイルに保存されたダブルから日付を再作成する必要がある場合は、ダブルに関する問題が悪化します。 – Steve