Hallo,
ich möchte in meinem Programm die Anzahl von Tagen zwischen 2 Daten berechnen (Datediff()) und bitte um Hilfe...
Seltsamerweise berechnet Datediff (in Zeile 31) einen Tag zu wenig, woran könnte das liegen?
Vielen Dank für eure Hilfe im Voraus!!
Hier der code:
Aus VB-Paradise Guide verschoben und Code-Tags korrigiert ~EaranMaleasi
ich möchte in meinem Programm die Anzahl von Tagen zwischen 2 Daten berechnen (Datediff()) und bitte um Hilfe...
Seltsamerweise berechnet Datediff (in Zeile 31) einen Tag zu wenig, woran könnte das liegen?
Vielen Dank für eure Hilfe im Voraus!!
Hier der code:
VB.NET-Quellcode
- Imports System.IO
- Public Class Form1
- Dim ueberOrdnerPfad As String = "D:\Aufgaben\", datstr As String, vbTage As String, oname As String
- Private Sub hinzufügeButton_Click(sender As Object, e As EventArgs) Handles hinzufügeButton.Click
- Dim pfadTextdatei As String = ueberOrdnerPfad & Me.TextBox1.Text & "\" & "Enddatum.txt"
- If Me.TextBox1.Text = "" Then Exit Sub
- 'Unterordner hinzufügen
- Directory.CreateDirectory(ueberOrdnerPfad & Me.TextBox1.Text & "\")
- 'Textdatei erstellen führt zu Problemen, in writealltext nur pfad angeben, sie wird dann erstellt falls nicht vorhanden (Tipp aus Forum)
- If Me.TextBox2.Text <> "" Then
- 'Enddatum in Textdatei schreiben
- File.WriteAllText(pfadTextdatei, Me.TextBox2.Text)
- Else
- 'kein Enddatum
- File.WriteAllText(pfadTextdatei, "")
- End If
- 'textdatei verstecken
- Dim info As System.IO.FileInfo = My.Computer.FileSystem.GetFileInfo(pfadTextdatei)
- info.Attributes = info.Attributes Or System.IO.FileAttributes.Hidden
- oname = getOrdnerName(ueberOrdnerPfad & Me.TextBox1.Text & "\")
- datstr = System.IO.File.ReadAllText(pfadTextdatei)
- If datstr = "" Then
- vbTage = "999"
- Else
- vbTage = CStr(DateDiff("d", Date.Now, CDate(datstr)))
- End If
- If Len(vbTage) = 1 Then vbTage = "00" & vbTage
- If Len(vbTage) = 2 Then vbTage = "0" & vbTage
- oname = vbTage & "_" & oname
- 'Listbox aktualisieren
- ListBox.Items.Add(oname)
- End Sub
- Private Sub loeschButton_Click(sender As Object, e As EventArgs) Handles loeschButton.Click
- Dim X As Integer
- If X <> -1 Then
- ListBox.Items.RemoveAt(X)
- End If
- End Sub
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- Dim pfad As String, pfadJeTextdatei As String
- Me.ListBox.Sorted = True
- For Each pfad In Directory.GetDirectories(ueberOrdnerPfad)
- 'Ordnername wird ermittelt
- oname = getOrdnerName(pfad)
- 'pfad je textdatei
- pfadJeTextdatei = pfad & "\Enddatum.txt"
- datstr = System.IO.File.ReadAllText(pfadJeTextdatei)
- If datstr = "" Then
- vbTage = "999"
- Else
- vbTage = CType(DateDiff("d", Date.Now, CDate(datstr)) + 1, String)
- End If
- If Len(vbTage) = 1 Then vbTage = "00" & vbTage
- If Len(vbTage) = 2 Then vbTage = "0" & vbTage
- oname = vbTage & "_" & oname
- 'Listbox aktualisieren
- ListBox.Items.Add(oname)
- Next pfad
- End Sub
- Function getOrdnerName(fpfad As String) As String
- Dim pos As Integer, l As Integer
- pos = InStrRev(fpfad, "\")
- l = Len(fpfad)
- getOrdnerName = Mid(fpfad, pos + 1, l)
- End Function
- End Class
Aus VB-Paradise Guide verschoben und Code-Tags korrigiert ~EaranMaleasi
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()