Uhrzeit in Worten
Schreibt jede Uhrzeit so aus, wie man sie sagt — wahlweise „viertel vor drei“ oder in der ostdeutschen Form „dreiviertel drei“.
„14:45 Uhr" liest man, „viertel vor drei" sagt man. Dieses Script macht aus jeder Uhrzeit die gesprochene Form — und zeigt dabei eine der bekanntesten sprachlichen Trennlinien Deutschlands.
Denn bei einer Uhrzeit wird es sofort strittig. Was ist „dreiviertel drei"? Im Osten und Süden — in Sachsen, Thüringen, Sachsen-Anhalt, Brandenburg, Franken, Teilen Bayerns und Österreichs — ist die Antwort selbstverständlich 14:45. Im Westen und Norden versteht man diese Angabe oft gar nicht und sagt „viertel vor drei". Ebenso bedeutet „viertel drei" im Osten 14:15, im Westen ist die Form unbekannt. Der Unterschied liegt im Bezugspunkt: Die eine Form zählt, welcher Anteil der laufenden Stunde schon vergangen ist, die andere den Abstand zur vollen Stunde.
Zwischen den beiden Sprachräumen verläuft eine erstaunlich scharfe Grenze quer durch Deutschland, die sich mit keiner politischen Grenze deckt — sie ist älter als die Teilung und hat mit alten Mundartgebieten zu tun. „Halb drei" für 14:30 sagen dagegen alle, und auch das ist bemerkenswert: Es ist die vorwärts zählende Form, die sich überall durchgesetzt hat. Im Englischen wäre „half three" dagegen halb vier — ein Fehler, der Deutschen im Ausland regelmäßig unterläuft.
Stellt unten eine Uhrzeit ein und wählt die Sprachform. Das Script schreibt jede Minute aus, nicht nur die glatten Viertelstunden: aus 14:37 wird „sieben nach halb drei". Auf Wunsch rundet es auf fünf Minuten, wie man es beim Sprechen meist tut.
Verwandtes: die Digitaluhr in Ziffern, die analoge Uhr mit Zeigern und Zahlen übersetzen, das Zahlen ins englische Zahlwort überträgt.
So funktioniert das Script
Die Aufgabe zerfällt in zwei Teile: Zahlen in Wörter übersetzen und die richtige Formulierung wählen. Der zweite Teil ist eine Kette von Bereichsabfragen, und ihre Reihenfolge entscheidet über alles.
if (m < 15) return minutenwort(m) + " nach " + diese;
if (m < 30) return minutenwort(30 - m) + " vor halb " + naechste;
if (m < 45) return minutenwort(m - 30) + " nach halb " + naechste;
return minutenwort(60 - m) + " vor " + naechste;
Die Stunde wird in vier Viertel geteilt, und jedes Viertel bezieht sich auf einen anderen Ankerpunkt: das erste auf die vergangene volle Stunde, das zweite und dritte auf die Halbe dazwischen, das vierte auf die kommende volle Stunde. Aus 14:37 wird so 37 - 30 = 7, also „sieben nach halb drei". Wichtig ist, dass die Sonderfälle für 0, 15, 30 und 45 Minuten vor dieser Kette abgefragt werden — sonst käme für 14:45 die letzte Zeile zum Zuge und lieferte „fünfzehn vor drei", was niemand sagt.
const naechste = stundenname(h + 1);
Ab der Hälfte der Stunde wird die kommende Stunde genannt: „halb drei" heißt 14:30 und nicht 15:30 — für Sprecher des Englischen die häufigste Verwechslung überhaupt. Deshalb steht der Name der nächsten Stunde von Anfang an bereit.
function stundenname(h) {
return stunden[((h % 12) + 12) % 12];
}
Aus der 24-Stunden-Zählung wird die 12-Stunden-Form, die man beim Sprechen benutzt. Die Restrechnung erledigt zugleich den Übergang von 23 auf 0 Uhr: 24 % 12 ist 0, und an dieser Stelle im Array steht „zwölf". Die doppelte Restbildung sichert gegen negative Werte ab, falls die Funktion einmal anders aufgerufen wird.
return (n % 10 === 1 ? "ein" : einer[n % 10]) + "undzwanzig";
Deutsche Zahlwörter nennen den Einer vor dem Zehner — „einundzwanzig", nicht „zwanzigeins". Der Sonderfall ist die Eins: Sie heißt allein „eins", in der Zusammensetzung aber „ein". Genau solche Kleinigkeiten machen die Umwandlung von Zahlen in Wörter zu einer überraschend zähen Aufgabe; in anderen Sprachen sind es andere Ausnahmen.
minute = Math.round(minute / 5) * 5;
if (minute === 60) {
minute = 0;
angepassteStunde = (stunde + 1) % 24;
}
Das Runden auf fünf Minuten ist der Standardtrick: teilen, runden, wieder malnehmen. Der Nachsatz ist die leicht vergessene Hälfte — 14:58 rundet auf 60 Minuten, und „vierzehn Uhr sechzig" gibt es nicht. Also wird auf 15:00 weitergeschaltet, wobei der Restwert % 24 auch den Tageswechsel um Mitternacht abfängt.
Zum Anpassen: Weitere regionale Formen lassen sich als zusätzlicher Wert im Auswahlfeld ergänzen — im Schwäbischen etwa sagt man auch „zehn vor halb drei" dort, wo andere „zwanzig nach zwei" sagen. Wollt ihr die Uhrzeit vorlesen lassen, könnt ihr den erzeugten Text an die Sprachausgabe des Browsers übergeben.
Script für die eigene Homepage
Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.
Mehr aus der Kategorie Datum & Uhrzeit
-
An welchem Wochentag wurde ich geboren?
-
Analoge Uhr
-
Analoge Uhr mit römischen Ziffern
-
Arbeitstage berechnen
-
Chinesisches Tierkreiszeichen
-
Digitaluhr
-
Jahreszeit
-
Kalender
-
Kalender mit Uhrzeit und Feiertagen
-
Kalenderwoche berechnen
-
Mondphase berechnen
-
Osterdatum berechnen
-
Schaltjahr prüfen
-
Sternzeichen ermitteln
-
Tage bis zum Jahr 3000
-
Tage zwischen zwei Daten
-
Unix-Zeitstempel wandeln
-
Weltzeituhr
-
Zeitumstellung