[JavaScript] Zeiträume

  • Hallo Liebe Com,

    ich habe keine Ahnung wie ich das realisieren soll, vielleicht kann mir jemand von euch helfen,
    und zwar geht es um Stundenlohn und Zuschläge.

    Angenommen ich habe von Samstag 19:00 Uhr bis Sonntag 03:00 Uhr gearbeitet und dabei 35 Minuten Pause gemacht. Das ist kein Problem und ist fertig.
    Jetzt kommt aber das Problem, Sonntagszuschläge gibt es von 00:00 bis 23:59, und ich müsste jetzt eben die 3 Stunden die "extrahieren".
    An sich ist das nicht schwer. So aus der Menschlichen Logik sagt man einfach 3 Stunden. Aber wie mache ich das am besten mit Javascript.
    Das ist auch noch "einfach" aber diese Grenzen sind variabel. Zusätzlich gibt es einen Nachtzuschlag, der von 20:00 bis 06:00 Uhr gilt, demnach müsste ich 4 Stunden von Samstag und 3 Stunden von Sonntag bezuschlagen.

    Ich entwickel eine Plattform, in der man eben Stundenlöhne und so eingeben kann, sodass man eine Übersicht hat, wie viel man gearbeitet hat und wie viel man verdient hat.


    Spoiler anzeigen
    • Offizieller Beitrag

    Das Problem ist doch sicher nicht die Sprachsyntax, sondern die Programmlogik - oder?

    So würde ich das in AutoIt angehen:

  • Servus, welche sind denn die wichtigsten Dateien?
    Ich gehe mal davon aus dass es sich um diese App hier handelt: Webprojekte\templates\EditDayView.html
    Wo finde ich den JavaScript-Teil dazu? Oder hast du bis jetzt noch nichts geschrieben?

    • Offizieller Beitrag

    Mir ist gerade eine wesentlich effektivere Methode eingefallen, Wochentag-Zeit in Minuten umzurechnen:

    EDIT: Ich habe gleich mal die kpl. Auswertefunktion erstellt.

  • Servus, welche sind denn die wichtigsten Dateien?
    Ich gehe mal davon aus dass es sich um diese App hier handelt: Webprojekte\templates\EditDayView.html
    Wo finde ich den JavaScript-Teil dazu? Oder hast du bis jetzt noch nichts geschrieben?

    Die Daten dazu sind im Ordner js\stundenlohn\view.

    Wobei ich noch mal alles überarbeitet habe.
    Der Pfad ist aber gleich geblieben.

  • Du kannst in HTML nicht einfach einen Klassennamen mit Leerzeichen vergeben. Solche Geschichten wie class=“btn btn-info“ (Zeile 7 in der EditDayView.html) sind in HTML nicht valide. Der Grund ist, dass das Leerzeichen in CSS als Selektor fungiert. Z.B. p div { <!-- CSS Code --> } maskiert alle div-Elemente welche Kinder von p-Elementen sind. Da musst du aufpassen dass du nur erlaubte Zeichen für Klassennamen oder ID's benutzt. Erlaubte Zeichen sind ausschließlich alle Groß und Kleinbuchstaben von A bis Z sowie die Zeichen 0 bis 9, der Unterstrich ( _ ) und das Minuszeichen ( - ). Außerdem solltest du mal deine HTML Seite (so wie sie derzeitig ist) durch den W3C Validator schicken. Du wirst erstaunt sein was du da für Meldungen bekommst. Ach ja, sobald ich die index.html aufrufe (unter Chrome) bekomme ich gleich einige JavaScript Fehlermeldungen. Auch da musst du mal am besten nach schauen, hast also noch viel zu tun. ^^

    So, jetzt noch eine andere Frage, in deinem Template hast du noch eine Feiertagszulage. Wie genau gedenkst du das mit ein zu beziehen? Soweit ich richtig informiert bin sind die Ferien in jedem Bundesland etwas unterschiedlich. Die meisten Feiertage sind ja noch einheitlich, aber Bayern und Saarland z.B. hat als einzige Bundesländer als gesetzlicher Feiertag Mariä Himmelfahrt (15. August). Da musst du differenzieren, außer dein Rechner soll sich nur auf ein Bundesland beziehen. Ist also schon ziemlich aufwendig was du da vor hast, aber machbar.

    Wie man das am besten realisiert muss ich mir erst selber noch überlegen, besonders bei den Feiertagen die sich jährlich um irgendwelche Tage verschieben. Aber im Netz gibt es ja genug Formeln dazu wie z.B. die Osterformel. Ich überlege mir mal wie man das am besten umsetzen kann und was noch alles zu beachten ist. Die Zwischenergebnisse teile ich dir dann mit damit du Anregungen bekommst.

    Ich schreibe den Rechner mal als OpenOffice Excel Dokument wenn das Recht ist ja? Lässt sich bestimmt alles mit einfacher Mathematik Berechnen.

    LG. Make :)

    Einmal editiert, zuletzt von Yjuq (2. Mai 2015 um 21:33)

    • Offizieller Beitrag

    Wie man das am besten realisiert muss ich mir erst selber noch überlegen, besonders bei den Feiertagen die sich jährlich um irgendwelche Tage verschieben. Aber im Netz gibt es ja genug Formeln dazu wie z.B. die Osterformel. Ich überlege mir mal wie man das am besten umsetzen kann und was noch alles zu beachten ist. Die Zwischenergebnisse teile ich dir dann mit damit du Anregungen bekommst.

    Berechnung für Feiertage (fix und veränderlich, bundeslandspezifisch) liegt schon hier im Forum vor. Leider sind z. Zt. alle Dateianhänge verschwunden, aber ich glaube, dass ich meist den Code im Post auch zusätzlich direkt eingefügt habe. Einfach mal suchen.

    Edit: ja, ist im Post - hier: https://autoit.de/index.php/Thre…tID=524#post524

  • Du kannst in HTML nicht einfach einen Klassennamen mit Leerzeichen vergeben. Solche Geschichten wie class=“btn btn-info“ (Zeile 7 in der EditDayView.html)

    Das sind auch zwei "verschiende" klassen. Ich verwende Bootstrap : http://getbootstrap.com/getting-started/#download und dazu weil ich kein Designer bin http://startbootstrap.com/template-overviews/sb-admin-2/

    Das Projekt kann man auch nicht über "file://" ausführen. Weil soweit ich weiß HTML5 Local und Sessionstorage nicht mit der "File-Basis" arbeiten können.
    Für alle die keinen Webserver zur Verfügung haben: http://vsy.ron-welzel.de hier könnt ihr das Testen. ABER es ist keine Server Anbindung vorhanden. Also wer Cache und so löscht bei dem gehen die Daten danach verloren.
    Server Anbindung wollte ich später machen.

    Und zu den Feiertagen, das ist aktuell noch egal, da man wenn man den Tag bearbeitet, die Wahl hat ob man Nachtschicht-, Sonntags- und Feiertagszulage aktivieren kann. Egal ob es Montag oder der 1. Mai ist.

    Edit 1:

    Also Firefox, Chome und Maxthon, liefern mir alle "Fehler" zurück von denen ich weiß und die auch da sein können. Da ich dennoch die Exception schreibe aber null zurückbekomme, weil ich weiß dass wenn der Wert nicht existiert (localstorage) dass ich den logischer weise nicht abrufen kann.

    Edit 2:

    Und beim w3c wobei der ja nur die Index prüft denke ich mal, https://validator.w3.org/check?uri=vsy.ron-welzel.de&charset=(detect+automatically)&doctype=Inline&group=0
    ist nur eine Warnung. Sonst alles okay. Habe aber nicht mit dem Quelltext ansonsten geguckt.