Ich habe zwei Originaldateien und ich benutze Verschlüsselungsanwendung, um sie zu verschlüsseln, diese Anwendung ändern das Datum der letzten Änderung dieser Dateien (wie 7zip tun), so habe ich versucht, das Datum der letzten Änderung der Originaldatei zu speichern Textdatei, damit ich dieses Datum später aus der Textdatei lesen und vergleichen kann, um zu sehen, welche Datei neuer ist, bevor sie überschrieben wird.Konvertieren von Datum zu Nummer
Aber ich möchte nicht Datum und Uhrzeit Datentyp verwenden, ich möchte es in Zahl konvertieren und die einzige Möglichkeit, die ich weiß ist, um es in doppelte konvertieren, aber es ist fehlgeschlagen.
So bin ich auf der Suche nach einer Möglichkeit, Datum als Nummer zu speichern, dann diese Zahl zu vergleichen (wenn ich könnte) oder es bis heute umwandeln, um zu wissen, welche Datei neuer ist, ich suche nicht nach Datum zu verdoppeln, dann verdoppeln stringeln.
Momentan erhalte ich das letzte Änderungsdatum der Datei unter Verwendung .LastWriteTime
und wandle es in doppelt unter Verwendung .ToOADate
um, aber es gab keine korrekten Ergebnisse.
Ich habe versucht, das Problem in diesem Code zu vereinfachen:
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
Wenn ich debuggen diesen Code Zeile für Zeile und bewegen Sie die Maus ein d1
seine Show eine Zahl mit 12 dezimal 42816.763087673608
, aber wenn ich es auf eine sparen Textdatei speichert eine Nummer mit nur 10 Dezimal 42816.7630876736
.
Meine Frage ist: wie man ein Datum in eine Zahl umwandelt und es in Textdatei speichert, dann (später) diese Zahl aus dieser Textdatei liest und ein Datum daraus wieder herstellt.
Dank @Steve für seine Antwort (in Kommentaren), DateTime.Ticks
ist eine großartige Lösung für mich zu vermeiden, Doppel-und seine endlosen Probleme zu verwenden.
Und es tut mir leid, den vorherigen Titel (Ich habe es bearbeitet).
Verwenden DateTime.Ticks statt – Steve
@Steve, Danke sehr, 'DateTime.Ticks' ist, was ich gesucht habe.es ist viel besser als (doppelt und seine Probleme). – Fadi
Auch das Problem mit Double ist schlimmer, wenn Sie das Datum aus dem Double in Ihrer Textdatei neu erstellen müssen. – Steve