0

Rechnen mit Arbeitstagen

Hallo ihr Lieben,

ich stehe mal wieder auf dem Schlauch. Ich will mit Arbeitstagen rechnen, bekomme die Formel aber nicht hin. Ich habe in einem Feld X die Lieferzeit in Tagen angegeben, also zb 4 Tage. Dann habe ich ein Datumsfeld, welches mit die vorrausichtlichte Lieferzeit ausspucken soll (also today()+FeldX). Wie bekomme ich es jetzt hin, dass er die 4 Tage als Arbeitstage draufrechnet. Also im Falle, dass in dem Zeitraum ein Wochenende liegt, er dieses automatisch mit draufrechnet. Habe mich schon an workdays versucht, aber bisher ohner Erfolg. Die Formel will er nicht.

5 Antworten

null
    • Leonid_Semik
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Paul,

    diese Formel für ein f(x) feld sollte funktionieren:

    ---

    function workday(myDate : date) do
    myDate := correctedDate(myDate);
    myDate := if weekday(myDate) > 4 then
    date(year(myDate), month(myDate), day(myDate) + 7 - weekday(myDate))
    else
    myDate
    end;
    myDate
    end;
    if FeldX then
    let myDate := today();
    myDate := workday(myDate);
    for i in range(FeldX) do
    myDate := date(year(myDate), month(myDate), day(myDate) + 1);
    myDate := workday(myDate)
    end;
    myDate
    end

    ---

     

    Leo

    • Paul_J_Herberhold
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hey Leo,

    super vielen Dank. Das funktioniert. Top, hätte ich alleine nicht hinbekommen. Bin beigeister.

    Ich verstehe die Formel auch leider überhaupt nicht :D, daher muss ich dir noch ein Frage stellen: Kann man irgendwie noch einbauen, dass es wenn es später als 9:30 Uhr ist automatisch noch ein Tag mit draufgerechnet wird? 

     

    Ich danke dir schon mal für deine Antwort.

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Ohne Leo vorwegzugreifen, würde ich es dann wie folgt schreiben:

    function workday(myDate : date) do
    myDate := correctedDate(myDate);
    myDate := if weekday(myDate) > 4 then
    date(year(myDate), month(myDate), day(myDate) + 7 - weekday(myDate))
    else
    myDate
    end;
    myDate
    end;
    if FeldX then
    let myDate := today()
    if datetime(today(), time()) > datetime(year(today()), month(today()), day(today()), 9, 30) then
    myDate := today()+1
    end;
    myDate := workday(myDate);
    for i in range(FeldX) do
    myDate := date(year(myDate), month(myDate), day(myDate) + 1);
    myDate := workday(myDate)
    end;
    myDate
    end

    • Paul_J_Herberhold
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hammer, ich danke dir. Auch Leo wird bestimmt nicht böse sein, dass du mir Noob das erklärt hast:D

    Komme ja eigentlich echt gut klar mit Ninox und bekomme auch einiges hin, aber wenn es an die Funktionen geht wird es kompliziert. 

    Also, 1000 Dank! Meine Druckaufträge können dank dir jetzt (fast) vollautomatisch ablaufen :p

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Die Hauptarbeit hat Leo gemacht.

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 5Antworten
  • 283Ansichten