Methode; Möglichkeit zu einem gegebenen Datums/Zeit-Wert eine beliebige Zeitspanne aufzuaddieren

  • Hallihallo liebe Community,


    ich habe mich vor kurzem an einer Aufgabe fest gebissen, scheitere aber nun kläglich daran.
    Ich finde einfach keinen Anfang und kein Ende. :(


    Details:
    Ich möchte eine Methode entwickeln, mit der es möglich ist, zu einem gegebenen Datums/Zeit-Wert eine beliebige Zeitspanne aufzuaddieren (Typisch: x Stunden oder Tage). Dabei sollen lediglich s.g. Arbeitszeiten berücksichtigt werden, d.h. die Methode soll nur definierte Arbeitstage (z.B Montag - Freitag) und nur definierte Arbeitszeiten (z.B. 8:00 - 18:00) berücksichtigen. Im Ergebnis soll ein Datums/Zeit-Wert zurückgegeben werden.
    Die Wochentag und die Arbeitszeiten sollen konfigurierbar sein.


    Ich wäre euch für eine Lösung sehr dankbar, da ich derzeit irgendwie mit Notes auf Kriegsfuß stehe. ||


    Ganz ganz liebe Grüße,
    Mrs.Fuchs

    Go on Trips, moving with weather as it shifts
    We took to the seas and let it drift
    How many islands could we hear?

  • Zunächst einmal:
    - vor dem Addieren prüfen,
    -- ob der Tag ein Wochenende ist (was machst du mit Feiertagen? Regional ebenso wie bundeseinheitlich)
    -- ob Teile des angegebenen Zeitraumes vor 8am oder 6pm liegt.
    ---- wenn ja: entsprechend kürzen
    - wenn Formelsprache: @Adjust
    - wenn LS: AdjustDay, AdjustHour, AdjustMinute, ... der NotesDateTime-Klasse verwenden


    Aber:
    - was ist, wenn zu "Heute, 17:30 Uhr" noch einmal 2 Stunden addiert werden sollen?
    -- ab 18:00 Uhr kappen?
    -- "Überstunden" irgendwo notieren?
    - was ist, wenn zu "Freitag, 18. November, 15:00 Uhr" noch 2 Tage und 3:01 Stunden addiert werden sollen?
    -- "Sonntag, 18:01 Uhr" dürfte nicht korrekt sein, wenn ich dich richtig verstehe?
    --- es sollte vermutlich "Mittwoch, 23. November, 08:01 Uhr" dabei rumkommen (unter der Annahme, dass ausschließlich Mo-Fr geschafft werden soll)?


    Einen Anfang zu finden, ist gar nicht mal so schwierig. Aber ein Ende zu finden ist weit weniger trivial, da gebe ich dir recht. Es sind eine Reihe von Fällen und Ausnahmen zu berücksichtigen, die in Summe das Gesamtkonstrukt ziemlich schnell in Arbeit ausarten lassen.


    Wofür brauchst du das? Vllt. gibt es Wege und Möglichkeiten, das ganze abzukürzen oder auf anderem Wege zu lösen.

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Hallo RockWilder,


    vielen Dank schon mal für deine Antwort. :)


    Nun dazu:


    was ist, wenn zu "Heute, 17:30 Uhr" noch einmal 2 Stunden addiert werden sollen?
    ja, die Zeit sollte dann ab 18:00 Uhr gekappt werden.


    was ist, wenn zu "Freitag, 18. November, 15:00 Uhr" noch 2 Tage und 3:01 Stunden addiert werden sollen?
    "Sonntag, 18:01 Uhr" dürfte nicht korrekt sein, wenn ich dich richtig verstehe?

    Genau, es wird nur von Mo. bis Freitag gearbeitet, dementsprechend ist es der Mittwoch, 23. November, 08:01 Uhr.


    Die Überstunden sollen erstmal ignoriert werden und sind für mich für diese Aufgabe nicht relevant.


    ------------------------------------------------


    Die Methode soll dann letztendlich in ein schon vorhandenes "Programm" eingebaut werden.


    Mein riesiges Problem ist es nur, dass ich mit Notes noch nicht wirklich zurecht komme, da ich vorher nur im Web-Bereich tätig war. Nun sitze ich seit einen Monat vor Notes und es geht nicht voran. :(
    Dementsprechend ist das Forum meine letzte Hoffnung wenigstens einen Lösungsansatz in Sachen Code zu finden, was für mich schon ein riesiger Fortschritt wäre.


    Ganz liebe Grüße,
    Mrs.Fuchs

    Go on Trips, moving with weather as it shifts
    We took to the seas and let it drift
    How many islands could we hear?

  • Mein riesiges Problem ist es nur, dass ich mit Notes noch nicht wirklich zurecht komme, da ich vorher nur im Web-Bereich tätig war. Nun sitze ich seit einen Monat vor Notes und es geht nicht voran.

    Ich verstehe dein Problem. Aber ich halte es -mit allem Respekt!- für ein eher mutiges Unterfangen ohne Vorkenntnisse in einer fremden Umgebung von Null auf Sofort mehr hinzubekommen, als "Hello World". Um es mal plakativ auszudrücken. Zu einem Admin oder Dev gehört eben auch, dass er den Skill hat zu sagen, wo ihm noch Skill fehlt und entsprechende Schulungen zu besuchen, sich dann langsam an die Materie ranzutasten und erst mit einem gewissen fachlichen Background dann solch anspruchsvolle Aufgaben zu übernehmen.


    Zitat

    Dementsprechend ist das Forum meine letzte Hoffnung wenigstens einen Lösungsansatz in Sachen Code zu finden, was für mich schon ein riesiger Fortschritt wäre.

    Auch hier wieder mit allem Respekt und Verständnis für deine Situation: aber zumindest von mir wird kein fertiger Code kommen. Einige Forenmitglieder verdienen ihr Geld damit, diese Art von Dienstleistungen zu erbringen. Denen mag und werde ich nicht dazwischenfunken. Der Grundgedanke des Forums ist zum Teil auch, dass es Hilfe zur Selbsthilfe gibt.
    Wenn du mehr oder weniger fertigen Code hast und an einer ganz spezifischen Stelle nicht weiterkommst, werde ich sehr gern die eine oder andere Zeile beisteuern. Aber die Idee, dass "das Forum" deine Anwendung schreibt, ist -wieder plakativ ausgedrückt- ein wenig optimistisch...


    Es wird immer wieder gern darauf verwiesen: "aber mein Chef hat gesagt, ich soll das tun und der bezahlt auch keine Schulungen" ... long story, short: tja, Pech gehabt, lieber Chef. Sorge für deine Mitarbeiter oder mach deinen Krempel selbst. So einfach ist die Welt. Und niemand von uns muss (oder sollte) zu allem "Ja und Amen" sagen. Wie gesagt: es gehört zu unseren Pflichten ebenso wie zu unseren Rechten, dass wir im Zweifel darauf pochen oder halt auch klar deutlich machen, dass unter gegebenen Umständen eine Aufgabe nicht in kurzer Zeit lösbar ist.


    So, soviel zur Vorrede, nun zum eigentlichen Thema:
    - wie weit hast du dich in die Materie bereit eingearbeitet? Soll heißen: wie weit ist deine Anwendung bereits fortgeschritten?
    - Sollst du eine neue von Grund auf designen und programmieren oder besteht bereits ein Rumpf, auf dem du aufsetzen kannst?
    - Wenn noch gar nichts besteht: wie weit hast du dich mit den grundlegenden Dingen der Anwendungsentwicklung unter Notes/Domino beschäftigen können?
    - Wie weit gehen deine Entwickler- und Programmeirskills? Du sagst, du warst im "Web-Bereich" tätig: das ist ein weites Feld. Das geht von "HTML von Grund auf im vi schreiben" bis zu "irgendeinen Klicki-Bunti-Müll mit Flash und JavaScript mit Code-Generatoren zusammenkleistern". Die Spanne zwischen diesen beiden Positionen ist gewaltig.
    - Das Formel-Konstrukt "@Adjust" habe ich bereits erwähnt, ebenso wie die NotesDateTime-Klasse. Wie weit hast du dir das bereits angesehen?
    - Welcher Skill besteht bei euch im Hause überhaupt Notes/Domino betreffend; kannst du mit einem erfahrenen Dev zusammen- und dich so in die Materie einarbeiten?
    - Wie sieht überhaupt die Timeline aus?

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Hallihallo.


    Erstmal danke für eure ganze Hilfe. :thumbup:
    Nun ja, ich muss dazu sagen, ich bin ein relativ "frischer" Azubi was das Thema Notes angeht. Notes hat es in einigen Sachen echt in sich.. Erstmal dahinter zu ist die größte Hürde.


    Generell kann ich auf zwei Noteshefte zurückgreifen, hilfreich sind diese aber auch nicht wirklich.


    Ich sitze nun erst einmal vor einem Struktogramm, danach muss ich mal schauen wie ich den Rest auf die Reihe bekomme.



    Aber wie gesagt, ganz vielen lieben Dank für eure Antworten.
    Alles Liebe,
    Mrs, Fuchs :)

    Go on Trips, moving with weather as it shifts
    We took to the seas and let it drift
    How many islands could we hear?