DGV Ist datum in Tabelle vorhanden?

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    DGV Ist datum in Tabelle vorhanden?

    Hallo zusammen,

    Ich muss herausfinden ob ein Datum zwischen tag_datum und end_datum in der Tabelle "fehler_daten" enthalten ist.
    Ich gehe die "Tage" mit folgendem Code durch:

    VB.NET-Quellcode

    1. Do While tag_datum <= end_datum
    2. If Not CDate(tag_datum).DayOfWeek = DayOfWeek.Saturday And Not CDate(tag_datum).DayOfWeek = DayOfWeek.Sunday And Not CDate(tag_datum).DayOfWeek = DayOfWeek.Friday Then
    3. //Hier einfügen
    4. End If
    5. tag_datum = tag_datum.AddDays(1)
    6. Loop

    Nun soll er bei jedem tag Prüfen ob dieses Datum in der Tabelle Fehler_daten vorkommt.

    Kann mir jemand helfen?
    ich hab für sowas eine generische IsBetween-Funktion:

    VB.NET-Quellcode

    1. Public Function IsBetween(Of T As IComparable)(toTest As T, lBound As T, uBound As T) As Boolean
    2. Return lBound.CompareTo(toTest) <= 0 AndAlso toTest.CompareTo(uBound) <= 0
    3. End Function
    4. '...
    5. '(Dim tag_datum, end_datum, fehler_datum As Date)
    6. Dim isInRange = IsBetween(fehler_datum.Date, tag_datum.Date, end_datum.Date)
    eine Schleife ist glaub unnötig.

    IsBetween gibts auch als Extension, dann ists erst richtig cool

    VB.NET-Quellcode

    1. Dim isInRange = fehler_datum.Date.IsBetween(tag_datum.Date, end_datum.Date)
    bei Interesse gugge Extensions und mehr.

    schnibli schrieb:

    Datum zwischen
    Präzisiere mal Deinen Plan.
    Du siehst lediglich nach, ob ein Wochenende dazwischen war.
    Der @ErfinderDesRades findet alle Abwesenheitstage, also Feiertage und Krankheit und solch.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    schnibli schrieb:

    Ich muss Prüfen
    Warum steht dies nicht im Eröffnungspost?
    Ist dies die vollständige Aufgabenstellung / Problembeschreibung?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    schnibli schrieb:

    Ich muss Prüfen ob es ein wochentag ist und wenn ja muss ich Prüfen ob dieser Tag in der tabelle steht.
    Dein Algo-Versuch macht aber was anderes: Der nudelt in einem Zeitbereich alle Tage durch, die es darinnen gibt.

    Was also musst du wirklich machen?
    Wochentag abprüfen ist klar, aber das andere: Vorhandensein in "der tabelle" (was immer das sein mag) prüfen, oder "ist im Zeitbereich" prüfen?
    Hmm ok nochmal das ganze dies mal ein bisschen korrekter:
    Ich muss den den Interger "tage" + 1 Zählen wenn:
    - Das Datum nicht auf ein Wochenende fällt
    - Das Datum nicht in der Tabelle fehler_daten enthalten ist.
    also "VorhandenSein in Tabelle musst du prüfen".
    Es reicht also nicht, den Zeitbereich von erstem Datum der Tabelle bis zum letzten Datum der Tabelle zu prüfen, denn die Tabelle beinhaltet nicht lückenlos alle dazwischenliegenden Datumse?

    Nu hab ich ein Problem: ich hab nicht deine Tabelle. Also ohne zu wissen, ob sie (nach Datum) sortiert ist, und wie man ein Datum dort überhaupt abruft, kann man wohl nix machen.