如何检查例如30分钟过去了?

时间:2012-09-04 08:51:18

标签: c# .net datetime

我有以下代码:

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);
    }
}             

我希望如果例如Besetzt_Von = 14:00,则只有在30分钟过去后才会执行查询(14:30)。我用if子句做了,但它不起作用。 Query始终在执行。我做错了什么?

2 个答案:

答案 0 :(得分:6)

变化

if (TimeCheck.AddMinutes(30) > v.Besetzt_Von)

它没有做任何事情(这意味着如果v.Besetz_von< v.BesetzVon + 30分钟,这当然总是正确的)

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

答案 1 :(得分:1)

// DateTime TimeCheck = v.Besetzt_Von; <-- you don't need this

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