2 Stimmen

Wie überprüft man, ob zum Beispiel 30 min vergangen sind?

Ich habe den folgenden Code:

if (v != null && DateTime.Now > v.Besetzt_Von)
{

    Debug.WriteLine("Hallo, das ist die Ausgabe! : " + v.Thema + v.Besetzt_Von + v.Besetzt_Bis);
    string clientId = GetClientId(req);

    DateTime TimeCheck = v.Besetzt_Von;

    if (TimeCheck.AddMinutes(30) > v.Besetzt_Von)
    {
        String hql = "UPDATE Buchung as b " +
        "set STORNO = :Storno " +
        "where ID IN (SELECT rr.Buchung FROM Raumreservierung rr " +
        "where BESETZT_VON = :Von and Raum IN (SELECT r.ID FROM Raum r " +
        "join r.Panel pl where pl.ID = :PanelId))";

        IQuery query = CurrentSession.CreateQuery(hql);
        query.SetParameter("Storno", DateTime.Now);
        query.SetParameter("Von", v.Besetzt_Von);
        query.SetParameter("PanelId", clientId);
        int result = query.ExecuteUpdate();
        Debug.WriteLine("Rows affected: " + result);
    }
}             

Ich möchte, dass wenn zum Beispiel Besetzt_Von = 14:00 Uhr ist, die Abfrage nur ausgeführt wird, wenn 30 Minuten vergangen sind (14:30 Uhr). Ich habe das mit der if-Klausel gemacht, aber es funktioniert nicht. Die Abfrage wird immer ausgeführt. Was mache ich falsch?

6voto

Raphaël Althaus Punkte 59020

Ändern

if (DateTime.Now > v.Besezt_Von.AddMinutes(30))

was nichts tut (das bedeutet, wenn v.Besetz_von < v.BesetzVon + 30 Minuten, was natürlich immer wahr ist)

1voto

Dennis Traub Punkte 48712
// DateTime TimeCheck = v.Besetzt_Von; <-- das brauchst du nicht

if (DateTime.Now > v.Besetzt_Von.AddMinutes(30))
{
    // ...
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X