Javascript ist Toll!

12. Juli 2010 - 00:47

Rechnen mit der Zeit

7.2.2024: selfhtml link angepaßt

Um mit Stunden und Minuten rechnen zu können, müssen diese umgewandelt werden. Entweder in eine Dezimalzahl, die die Minuten und Sekunden in Bruchteilen angibt oder in eine ganze Zahl, wie in diesem Artikel bei Selfhtml beschrieben.

Eine Angabe hh:mm:ss wird dort einfach in Sekunden umgewandelt, mit dieser Zahl läßt sich dann leicht rechnen. Ich habe dieses Verfahren genutzt, um eine kleine Klasse zu schreiben, mit der in Javascript leicht Zeitangaben addiert und subtrahiert werden können.

Hour.js

Ich habe die Klasse Hour genannt, da die Stunde die höchste Einheit ist, die damit berechnet werden kann. Um die Klasse anzuwenden, muss ihr eine Zeichenkette im Format hh::mm:ss als Parameter im Konstruktor übergeben werden. Wobei alle Angaben optional sind und wenn sie fehlen auf Null gesetzt werden. Ein einfaches Beispiel sieht folgendermaßen aus:

var z1 = new Hour('1:35:20');
var z2 = new Hour('0:45:55');
 
alert(z1.add(z2)); // Ausgabe: 02:21:15
alert(z1.sub(z2)); // Ausgabe: 00:49:25

Durch überschreiben der Funktionen toString() und valueOf() wird entweder eine formatierte Zeichenkette oder die Anzahl der Sekunden zurück gegeben.

var z1 = new Hour('1:35:20');
 
alert(z1); // Stringkontext Ausgabe: 01:35:20
alert(z1 * 1); // Zahlenkontext Ausgabe: 5720

Die Methode hour() gibt die Zahl als Dezimalzahl zurück:

var z1 = new Hour('1:35:20');
 
alert(z1.hour()); // Ausgabe: 1.5888888889

Mit der Methode set() wird der Wert neu gesetzt, dabei muss der Wert in Sekunden übergeben werden.

Methoden

Beispiel

Zeit 1:  
Zeit 2: 
(Die Werte werden beim verlassen der Felder berechnet)
sub() =  
add() = 

Download

Die Datei kann hier runtergeladen werden: hour.js
In der Datei ist noch eine String.prototype Funktion, mit der jede Zeichenkette in ein Hour-Objekt umgewandelt werden kann. In der Form: '01:00:00'.hour()

ähnliche Artikel

Comments (10)
11116 mal gelesen.

10 Kommentare

Leave a comment »

Seiten:

1. Kommentar von: Gott
6. Februar 2020: 16:15

dein hours.js bringt überhaupt nichts, weil man die variablen nicht kennt.
Daumen runter

2. Kommentar von: Jesus
6. Februar 2020: 16:17

schlecht erklärt

3. Kommentar von: struppi
6. Februar 2020: 16:18

Natürlich „kennt man“ die Variabeln, wenn man das Skript nutzt.

#2 Was ist daran schlecht erklärt?

4. Kommentar von: Ulf
6. Februar 2020: 16:23

@stuppi Da muss ich dem Nutzer Gott zustimmen. Die Datei ist sehr unübersichtlich geschrieben,
da keine expliziten Variablen verwendet werden.

Gruß Ulf

5. Kommentar von: struppi
6. Februar 2020: 16:26

Du bist Nutzer „Gott“ und „Jesus“ ich sehe deine IP.

Ich verstehe dein Problem nicht. Natürlich werden in der Datei Variabeln verwendet. Kannst du dein Problem/Frage besser erklären?

6. Kommentar von: Ulf
6. Februar 2020: 16:37

Ist für mich einfach ziemlich unübersichtlich, kann aber sein dass es für andere besser verständlich ist. Finde es immer einfacher, wenn sowas Schritt für Schritt gezeigt wird.

Gruß Ulf

    7. Kommentar von: struppi
    6. Februar 2020: 16:41

    Was denn gezeigt wird?
    Da gibt es nicht viel und das bisschen wird meiner Ansicht mehr als ausreichend erklärt. Es wäre reichlich aufwendig, bei jedem kleinen Skript jeden Schritt zu erklären. Ohne Javascript Kenntnisse macht die ganze Seite keinen Sinn. Um aber Javascript zu lernen gibt es bessere Seiten.

8. Kommentar von: Ulf
6. Februar 2020: 16:45

Ist ja alles Gut, ist nur meine persönliche Meinung.

Und Danke für das schnelle Feedback!

Gruß Ulf

9. Kommentar von: KH
27. Januar 2022: 23:42

Lieber Scriptersteller,

vielen Dank für das tolle Script. Es hat mir einige Arbeit erspart.
Ich musste lediglich herausfinden, wie ich es sinnvol für eine Variable nutzen kann.
1. Lösung –> console.log –> console.log(z1.add(z2).toString());
2. Lösung: var Zeit_1 = z1.add(z2).toString();
console.log(Zeit_1);

Da keine Lizenz angegeben wurde, gehe ich davon aus, dass dieses Script frei verwendet werden kann bzw. unter die MIT-Lizenz fällt.
Wenn sich der Sachverhalt anders darstellen sollte, bitte ich um Kontaktaufnahme.

Vielen, vielen Dank!
LG, Kon

    10. Kommentar von: struppi
    27. Januar 2022: 23:54

    Nein, alles in Ordnung, es kann so benutzt werden ohne Einschränkung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Powered by WordPress Stop Spam Harvesters, Join Project Honey Pot
marketing-bankruptcy
marketing-bankruptcy
marketing-bankruptcy
marketing-bankruptcy