0

Zeitdauer / Resttage

Hallo,

als absoluter Neuling bitte um Hilfe :) 

Wir wollen einen Zeitraum (Laufzeit) angeben (zb. 1.3 - 15.3 ), im Feld daneben soll die Restzeit stehen die herunterzählt (zb. noch 3 Tage) und sobald die Tage abgelaufen sind, auf 0 stehen soll das Feld rot werden.

Was kann ich hier für eine Formel nehmen?

DANKE! <3 

8 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 7 Monaten
    • Gemeldet - anzeigen

    Hallo Eugen, WENN es zwei Datumsfelder sind und WENN die Restzeit von heute bis zum ersten (Start-) Datum (im Beispiel 'Datum_von') ermittelt werden soll, würde ich es so versuchen (Formelfeld):

    let myD := days(date(today()), Datum_von);
    let myColor := if myD < 1 then "red" else "" end;
    styled(text(myD), myColor)

    Ansonsten das Anliegen bitte noch mal genauer beschreiben oder das Script entsprechend anpassen.

      • Eugen_Admin
      • vor 7 Monaten
      • Gemeldet - anzeigen

       Danke für die schnelle Antwort! Ich habe 2 Datumsfelder eines "von" und eines "bis". Ich trage im Feld "von" das Datum 1.5.2024 ein und im Feld "bis" trage ich 31.5.2024 ein. Das ist die Laufzeit (es geht um Facebook Werbeanzeigen) Und dann brauche ich wie gesagt ein neues Feld mit der Restlaufzeit (zb. noch 5 Tage und diese Zahl soll sich dann auch rot verfärben wenn 0 erreicht wurde)

      • pma_mgmt
      • vor 7 Monaten
      • Gemeldet - anzeigen

       - ich passe die Antwort von planox. pro an. -> Wenn die Zahl falsch ist, dann ggf. "days(Bis,Von)" verwenden.

      let myD := days(Von, Bis);
      let myColor := if myD < 1 then "red" else "" end;
      styled(text(myD), myColor)
      
      • Ninox-Professional
      • planoxpro
      • vor 7 Monaten
      • Gemeldet - anzeigen

       

      Ich spekuliere mal, ab dem Von-Datum soll die Restdauer zum Bis-Datum am heutigen Tag ermittelt werden. Dann vielleicht so:

      if Datum_von <= today() and Datum_bis >= today() then
          let myD := days(date(today()), Datum_bis);
          let myColor := if myD = 0 then "red" else "" end;
          styled(text(myD), myColor)
      else
          null
      end

       

    • Eugen_Admin
    • vor 7 Monaten
    • Gemeldet - anzeigen

    Hallo Peter, Hallo Planox,

    danke für eure erneuten Antworten.
    @Peter: Dein Code funktioniert, aber er zählt ins Minus. Er bleibt bei 0 nicht stehen :) Bzw. in der Übersicht sollte dann auch 0 stehen, wenn das Datum vorbei ist.
    @Planox: Bei deinem Code bekomme ich leider folgenden Fehler:

    Wir kommen der Sache aber Näher, vielen DANK!

      • Ninox-Professional
      • planoxpro
      • vor 7 Monaten
      • Gemeldet - anzeigen

       Die Feldnamen 'Datum_von' und 'Datum_bis' hatte ich nur exemplarisch eingesetzt. Sie müssen natürlich durch die tatsächlichen Namen ersetzt werden (laut Screenshot 'Von' und 'Bis').

      Grundsätzlich bin ich davon ausgegangen, dass die Zählung der Resttage erst bei Erreichen des 'Von'-Datums beginnen soll.

      • Eugen_Admin
      • vor 7 Monaten
      • Gemeldet - anzeigen

        Vielen Dank, das sieht nun gut aus :) Eine letzte Sache noch. Sobald 0 erreicht ist, soll bitte 0 stehen bleiben. Derzeit verschwindet die Zahl sobald diese auf -1 ist.

      • Ninox-Professional
      • planoxpro
      • vor 7 Monaten
      • Gemeldet - anzeigen

       Dann würde ich den else-Zweig wie folgt ergänzen:

      if Von <= today() and Bis >= today() then
          let myD := days(date(today()), Bis);
          let myColor := if myD = 0 then "red" else "" end;
          styled(text(myD), myColor)
      else
          if Bis < today() then styled("0", "") else null end
      end