Stand: 17. Oktober 2015

Inhaltsverzeichnis

über dieses Dokument
was es hierin gibt
wo man die neuste Version bekommt
wie man den Verfasser kontaktiert
welche gesetzlichen Einschränkungen es gibt
Lizenzlosigkeit
Verfasserschutz
Vorbehalt für zusätzliche Einschränkungen für zukünftige Versionen

allgemeine Informationen
welche Zeitsysteme verbreitet sind
gregorianischer Kalender
ISO 8601
julianischer Kalender
koordinierte, universelle Zeit
Unix-Zeitstempel
Windows-Zeitstempel
welche Unterschiede die Zeitsysteme haben
Betriebssystem-spezifische Hilfen
Unix und darauf basierende Betriebssysteme
aktuelle Zeit ermitteln
Zeitangaben umrechnen
Windows
aktuelle Zeit ermitteln
Zeitangaben umrechnen
Maße
Schaltsekunde
Schalttag
Schaltjahr

die Details
gregorianischer Kalender
abgedeckter Zeitraum
Anfang
Ende
Bezeichnung
Grund von der Einführung
Maße
Übersicht
Sekunde
Schaltsekunde
Minute
Stunde
Tag
1. Tag von der Woche
1. Tag vom Jahr
Anzahl der vergangenen Tage seit dem Nullpunkt
Schalttag
Wochentag
ursprüngliche Wochentagsformel
verbesserte Wochentagsformel
wiederverwertende Wochentagsformel
Woche
Kalenderwoche
Monat
Jahr
gewöhnliches Jahr bzw. Schaltjahr
in Worten
für Programmierer
signifikante Punkte
Nullpunkt
Referenz(en)
ISO 8601
abgedeckter Zeitraum
Anfang
Ende
Anerkennung
Bezeichnung
Grund von der Einführung
Maße
Übersicht
Sekunde
Schaltsekunde
Minute
Stunde
Tag
1. Tag von der Woche
1. Tag vom Jahr
Anzahl der vergangenen Tage seit dem Nullpunkt
Kalendertag
Schalttag
Wochentag
verbesserte Wochentagsformel
wiederverwertende Wochentagsformel
Woche
Kalenderwoche
Kalenderwochennummer
Monat
Jahr
gewöhnliches Jahr bzw. Schaltjahr
in Worten
für Programmierer
Kalenderjahr
signifikante Punkte
Nullpunkt
Referenz(en)
julianischer Kalender
abgedeckter Zeitraum
Anfang
Ende
Bezeichnung
Grund von der Einführung
Maße
Übersicht
Sekunde
Schaltsekunde
Minute
Stunde
Tag
1. Tag von der Woche
1. Tag vom Jahr
Anzahl der vergangenen Tage seit dem Nullpunkt
Schalttag
Wochentag
verbesserte Wochentagsformel
wiederverwertende Wochentagsformel
Woche
Kalenderwoche
Monat
Jahr
gewöhnliches Jahr bzw. Schaltjahr
in Worten
für Programmierer
signifikante Punkte
Nullpunkt
Referenz(en)
koordinierte, universelle Zeit
abgedeckter Zeitraum
Anfang
Ende
Bezeichnung
Maße
Übersicht
Sekunde
Schaltsekunde
Minute
Stunde
Tag
Anzahl der vergangenen Tage seit dem Nullpunkt
Wochentag
Woche
Monat
Jahr
signifikante Punkte
Nullpunkt
Referenz(en)
Unix-Zeitstempel
Änderungen
abgedeckter Zeitraum
Anfang
Ende
Bezeichnung
Grund von der Einführung
Maße
Übersicht
Sekunde
Schaltsekunde
Minute
Stunde
Tag
Woche
Monat
Jahr
signifikante Punkte
Nullpunkt
Referenz(en)
Windows-Zeitstempel
aktuelle Definition
abgedeckter Zeitraum
Anfang
Ende
Bezeichnung
Grund von der Einführung
Maße
Übersicht
Sekunde
Schaltsekunde
Minute
Stunde
Tag
Woche
Monat
Jahr
signifikante Punkte
Nullpunkt
Referenz(en)

weiteres Material zu diesem Thema
Bibliotheken
Dokumente
Aufnahme von weiteren Materialien


über dieses Dokument

was es hierin gibt

Dieses Dokument beschreibt die Zeitsysteme

wo man die neuste Version bekommt

Derzeit nutze ich OnTheServer.de/Downloads/ um neue Versionen zugänglich zu machen. Sie müsste irgendwo dort in den Unterverzeichnissen sein; das kann sich hin und wieder ein bischen ändern.

Dort gibt es vielleicht auch dieses Dokument in anderen Sprachen.

Die Versions-Angabe von diesem Dokument steht oben rechts ("Stand: ...").

wie man den Verfasser kontaktiert

Der Verfasser von diesem Dokument kann mit der Hilfe von einer elektronischen Nachricht kontaktiert werden. Das hierfür eingerichtete Postfach ist mit der Hilfe von der folgenden Adresse erreichbar:
Kontakt@On(entferne mich)TheServer.de

welche gesetzlichen Einschränkungen es gibt

Lizenzlosigkeit

Dieses Dokument
  • ist an keine Lizenz gebunden.
  • unterliegt nicht den Einschränkungen durch das Urhebergesetz.
  • soll allgemeinfrei (public domain) behandelt werden. Also so, als wenn es sich um ein Eigentum von der Allgemeinheit handelt.

Im Übrigen soll alles, was man auf OnTheServer.de und den Subdomains öffentlich zugänglich findet, entsprechend behandelt werden.

Es gibt auf OnTheServer.de allerdings eine Ausnahme:
Ich lege gelegentlich im Verzeichnis "OnTheServer.de/temp/" urheberrechtlich geschütztes Material ab.

Es ist nicht gestattet, auf irreführendeweise vorzutäuschen, dass das (ursprüngliche) Dokument an eine Lizenz gebunden wäre.

Verfasserschutz

Es ist nicht gestattet, auf irreführendeweise vorzutäuschen, dass man der (ursprüngliche) Verfasser vom Dokument wäre. Der (ursprüngliche) Verfasser muss jedoch nicht namentlich genannt werden.

Vorbehalt für zusätzliche Einschränkungen für zukünftige Versionen

Ich (der ursprüngliche Verfasser) behalte die Möglichkeit, Einschränkungen für
  • die Veränderung oder/und
  • die Verbreitung
aufzuerlegen. Von den Einschränkungen wären lediglich neue Versionen betroffen. Was bisher veröffentlicht wurde, erhält keine weiteren Einschränkungen.

Von diesem Recht werde ich hoffentlich nie gebrauch machen müssen.


allgemeine Informationen

welche Zeitsysteme verbreitet sind

gregorianischer Kalender

Das Zeitsystem "gregorianischer Kalender" ist ein Nachfolger vom Zeitsystem "julianischer Kalender" und basiert auf diesem.

Am 15.10.1582 wurde das Zeitsystem "gregorianischer Kalender" zum ersten Mal eingeführt und hat sich dann über die Jahrhunderte über die Welt verbreitet. Über die Zeit wurde das Zeitsystem, welches im Alltag verwendet wird, allerdings etwas abgeändert.

Mit "Alltag" sind hier beispielsweise
  • die Datumsangabe im Briefverkehr,
  • die Terminabsprache unter Freunden und
  • ähnliche Situationen
gemeint.

Das ursprüngliche Zeitsystem "gregorianischer Kalender" wird heutzutage immer weniger verwendet. Es ist aber zur Grundlage von einigen Zeitsystemen geworden, welche in den letzten Jahrzehnten entwickelt wurden.

ISO 8601

Das Zeitsystem, welches durch die Norm "ISO 8601" definiert ist,
  • ist eine Alternative zum Zeitsystem "gregorianischer Kalender" und basiert auf diesem.
  • findet in der heutigen Zeit im Alltag kaum Verwendung. Allerdings sind in dieser Norm einige Aspekte für das Zeitsystem definiert, welche nicht im Zeitsystem "gregorianischer Kalender" definiert sind, welche aber durchaus im Alltag in vielen Ländern häufig verwendet werden.

Auch in einigen Ländern, in welchen der Islam weit verbreitet ist, wird im Alltag weitgehend ein Zeitsystem verwendet, welches dem Zeitsystem von der Norm "ISO 8601" in einigen Aspekten entspricht. Für einige wenige Zwecke, wie zum Beispiel dem Festlegen, wann religiöse Feste stattfinden, wird dort allerdings ein anderes Zeitsystem verwendet.

Im Iran hingegen, in welchem der Islam ebenfalls weit verbreitet ist, scheint allerdings im Alltag allzuviel Verwendung zu finden.

julianischer Kalender

Das Zeitsystem "julianischer Kalender" ist ein Nachfolger vom Zeitsystem "alter römischer Kalender" und basiert auf diesem.

Im Jahr "45 vor Christus" wurde das Zeitsystem "julianischer Kalender" zum ersten Mal eingeführt und hat sich von dann an im gesamten römischen Reich verbreitet.

Die weitere Verbreitung, auch außerhalb vom römischen Reich, hat zwar stattgefunden, wurde allerdings seit dem 15.10.1582 nennenswert gebremst. An diesem Tag wurde das Zeitsystem "gregorianischer Kalender" zum ersten Mal eingeführt. Dieses neue Zeitsystem hat das Zeitsystem "julianischer Kalender" zwischenzeitlich (Stand: 2015) weitgehend abgelöst.

koordinierte, universelle Zeit

Der Name von diesem Zeitsystem taucht relativ oft auf. Verwendet wird dieses Zeitsystem allerdings relativ selten.

In einigen Fällen, in welchen der Name auftaucht, wird in Wirklichkeit ein anderes Zeitsystem verwendet, welches dem Zeitsystem "koordinierte, universelle Zeit" relativ ähnlich ist. Dabei werden speziell die Schaltsekunden meistens nicht verwendet.

Deutschland scheint zu jenen Ländern zu gehören, welche dieses Zeitsystem zur gesetzlichen Zeit festgelegt haben. Das zuständige Gesetz "Gesetz über die Zeitbestimmung" macht allerdings keine klare Auskunft darüber, ob es sich um das Zeitsystem "koordinierte, universelle Zeit" handelt.

Unix-Zeitstempel

Bei der Datenverarbeitung mit Computern sind Unix-Zeitstempel, und somit das gleichnamige Zeitsystem "Unix-Zeitstempel" relativ verbreitet.

Ein Unix-Zeitstempel bietet, im Gegensatz zu einer Zeitangabe gemäß dem Zeitsystem, welches durch die Norm "ISO 8601" definiert ist, technische Vorteile, wodurch er einfacher von Programmen verwendet werden kann. Eine Angabe von einem Unix-Zeitstempel ist für viele Menschen jedoch nicht aussagekräftig und wird daher oft zur Erhöhung von der Aussagekraft in das Zeitsystem umgerechnet.

Ein Unix-Zeitstempel kann
  • im Betriebssystem "Unix" und
  • in einem auf Unix basierendem Betriebssystem
leichter ermittelt werden, als in einem solchen Betriebssystem ein Windows-Zeitstempel ermittelt werden kann.

Windows-Zeitstempel

Bei der Datenverarbeitung mit Computern im Betriebssystem "Windows" wurde, im Speziellen in der Vergangenheit, teilweise das Zeitsystem "Windows-Zeitstempel" verwendet.

Unix hat es bereits vor Windows gegeben. Das Zeitsystem "Windows-Zeitstempel" ist dem Zeitsystem "Unix-Zeitstempel" allerdings relativ ähnlich. Da es also aus dieser Sicht und im Speziellen für einen Programmierer, welcher bisher
  • mit Unix oder
  • einem darauf basierendem Betriebssystem
gearbeitet hat, keinen besonders guten Grund gab, vom Zeitsystem "Unix-Zeitstempel" auf den "Windows-Zeitstempel" umzusteigen, hat sich das Zeitsystem "Windows-Zeitstempel" nur eingeschränkt verbreitet.

Ein Aspekt, warum sich das Zeitsystem allerdings dennoch verbreitet hat, besteht
  • zum Einen darin, dass ein Windows-Zeitstempel durch die Windows-API leichter ermittelt werden kann, als ein Unix-Zeitstempel durch die Windows-API ermittelt werden kann und
  • zum Anderen darin, dass Windows zu einem sehr verbreiteten Betriebssystem geworden ist.

In den letzten Jahren ist es jedoch zunehmend einfacher geworden, ein Programm für mehrere Betriebssysteme zu programmieren und zu kompilieren. Außerdem haben sich speziell in den letzten Jahren einige Skriptsprachen verbreitet, die relativ Betriebssystem-unabhängig verwendet werden können.

In der Praxis sind auch tatsächlich
  • einige bestehende Programme Betriebssystem-unabhängiger geworden und
  • einige neue Programme entstanden, welche relativ Betriebssystem-unabhängig sind.
Solche Programme verwenden meistens, unabhängig vom Betriebssytem auf welchem sie ausgeführt werden, das selbe Zeitsystem.

Die Entscheidung fällt dabei oft Hierdurch ist die Verbreitung vom Zeitsystem "Windows-Zeitstempel" in den letzten Jahren wieder nennenswert gesunken.

Weitere Aspekte, warum sich das Zeitsystem "Windows-Zeitstempel" verbreitet hat, bestehen in der höheren Auflösung und im größeren Zeitraum, welcher abgedeckt wird. Beim Zeitraum tendieren jedoch viele Programmierer dazu,
  • lieber durch eine kleine Abänderung einen "8 Byte"-großen Unix-Zeitstempel zu verwenden,
  • als durch eine größeres Abänderung ein anderes Zeitsystem zu verwenden.

welche Unterschiede die Zeitsysteme haben

gregorianischer Kalender ISO 8601 julianischer Kalender
abgedeckter Zeitraum: Anfang: 15.10.1582
Ende: - nicht festgelegt -
Anfang: - nicht festgelegt -
Ende: - nicht festgelegt -
Anfang: - keine Ahnung -
Ende: - nicht festgelegt -
durchschnittliche Dauer von 1 Jahr: 365,2425 Tage 365,2425 Tage 365,25 Tage
erste Verwendung:
(die Zeitangaben gelten gemäß dem Zeitsystem "gregorianischer Kalender")
15.10.1582 im Jahr "1988" im Jahr "45 vor Christus"
Format von Jahreszahlen vor dem Nullpunkt: "x Jahre vor dem Nullpunkt von der Zeitrechnung"
(oder kurz: "x Jahre vor der/unserer Zeit")
negative Zahlen "x Jahre vor der Geburt von Jesus Christus"
(oder kurz: "x vor Christus")
Jahr "0": wird ausgelassen wird benutzt wird ausgelassen
Referenz(en):
Ereignis: Zeitraum:
Der Tag "05.10.1582" gemäß dem Zeitsystem "julianischer Kalender" hat stattgefunden. Der Tag "15.10.1582" gemäß dem Zeitsystem "gregorianischer Kalender".
Ereignis: Zeitpunkt/-raum:
Die Meterkonvention (im Französischen: "Convention du Mètre") wurde in Paris unterschrieben. Irgendwann am 20.05.1875
Es ist Mitternacht. 0:00 Uhr
Ereignis: Zeitraum:
Jesus Christus wurde geboren.

(Dieses Ereignis wird erst seit dem Jahr "525" als Referenz verwendet.)
Irgendwann im Jahr "1 nach Christus" gemäß dem Zeitsystem "julianischer Kalender".

koordinierte, universelle Zeit Unix-Zeitstempel Windows-Zeitstempel
abgedeckter Zeitraum:
(die Zeitangaben gelten gemäß dem Zeitsystem "koordinierte, universelle Zeit")
Anfang: 01.01.1972
Ende: - nicht festgelegt -
Anfang: 01.01.1970
Ende: 19.01.2038
Anfang: 01.01.1601
Ende: etwa im Jahr "30.828"
Auflösung: - nicht festgelegt - 1 Sekunde pro Schritt 100 Nanosekunden pro Schritt
erste Verwendung:
(die Zeitangaben gelten gemäß dem Zeitsystem "gregorianischer Kalender")
gemäß einer älteren Definition: 01.01.1961
gemäß der heutigen Definition: 01.01.1972
ca. 1971 ca. 1995
Referenz(en):
Ereignis: Zeitpunkt:
Der Zeitpunkt "0:00:10 Uhr vom 01.01.1972" gemäß dem Zeitsystem "internationale Atomzeit" ("TAI") hat stattgefunden. Um 0:00:00 Uhr vom 01.01.1972 gemäß dem Zeitsystem "koordinierte, universelle Zeit".
Das Datum und die Uhrzeit vom Zeitsystem "koordinierte, universelle Zeit" unterscheiden sich um weniger oder gleich ±0,9 Sekunden vom Datum und der Uhrzeit Seit 0:00:00 Uhr vom 01.01.1972 gemäß dem Zeitsystem "koordinierte, universelle Zeit".
Ereignis: Zeitpunkt:
Der Zeitpunkt "0:00:00 Uhr vom 01.01.1970" gemäß dem Zeitsystem "koordinierte, universelle Zeit" hat stattgefunden. an der Sekunde "0" gemäß dem Zeitsystem "Unix-Zeitstempel"
Ereignis: Zeitpunkt:
Der Zeitpunkt "0:00:00 Uhr vom 01.01.1601" gemäß dem Zeitsystem "koordinierte, universelle Zeit" hat stattgefunden. an der Sekunde "0" gemäß dem Zeitsystem "Windows-Zeitstempel"

Betriebssystem-spezifische Hilfen

Unix und darauf basierende Betriebssysteme

In den folgenden Unterkapiteln werden sogenannte "system calls" von Unix genannt. Im Kapitel "weiteres Material zu diesem Thema - Dokumente" ist ein Dokument aufgelistet, welches diese Funktionen vom Betriebssystem detailierter beschreibt.

aktuelle Zeit ermitteln

gemäß dem Zeitsystem: verfügbare "system calls" für die
globale Zeit: lokale Zeit:
gregorianischer Kalender - keine - - keine -
ISO 8601 - keine - - keine -
julianischer Kalender - keine - - keine -
koordinierte, universelle Zeit - keine - - keine -
Unix-Zeitstempel
Name: Funktions-Identifikationskennung:
gettimeofday
Wert gemäß Zahlensystem:
der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen":
1001110 01001110 00000000 00000000 00000000 2er-System
(Binär-System)
78 10er-System
(Dezimal-System)
4E 4E 00 00 00 16er-System
(Hexadezimal-System)
time
Wert gemäß Zahlensystem:
der regulären Schreibweise: dem Variablentyp "Ganzzahl ohne Vorzeichen":
1101 00001101 00000000 00000000 00000000 2er-System
(Binär-System)
13 10er-System
(Dezimal-System)
D 0D 00 00 00 16er-System
(Hexadezimal-System)
- keine -
Windows-Zeitstempel - keine - - keine -

Die Funktion "gettimeofday" ist im Betriebssystem "Unix" nicht verfügbar.

Zeitangaben umrechnen

  • Das Betriebssystem "Unix" und
  • die darauf basierenden Betriebssysteme
stellen keinen sogenannten "system call" zur Verfügung, mit dessen Hilfe eine Zeitangabe umgerechnet werden kann.

Stattdessen können in einem solchen Betriebssystem entsprechende Funktionen von einer Bibliothek verwendet werden.

Im Kapitel "weiteres Material zu diesem Thema - Bibliotheken" ist eine allgemeinfreie und kostenlose Bibliothek aufgelistet, welche für sämtliche Umrechnungen verwendet werden kann.

Windows

In den folgenden Unterkapiteln werden Funktionen von der Windows-API genannt. Im Kapitel "weiteres Material zu diesem Thema - Dokumente" ist ein Dokument aufgelistet, welches diese Funktionen vom Betriebssystem detailierter beschreibt.

aktuelle Zeit ermitteln

gemäß dem Zeitsystem: verfügbare Bibliothek: verfügbare Funktion für die
globale Zeit: lokale Zeit:
gregorianischer Kalender - keine - - keine - - keine -
ISO 8601 - keine - - keine - - keine -
julianischer Kalender - keine - - keine - - keine -
koordinierte, universelle Zeit kernel32.dll GetSystemTime GetLocalTime
Unix-Zeitstempel - keine - - keine - - keine -
Windows-Zeitstempel kernel32.dll GetSystemTimeAsFileTime - keine -

Zeitangaben umrechnen

Quelle Ziel verfügbare Bibliothek: verfügbare Funktion:
Lokalität: Zeitsystem: Lokalität: Zeitsystem:
global koordinierte, universelle Zeit global Windows-Zeitstempel kernel32.dll SystemTimeToFileTime
global Windows-Zeitstempel global koordinierte, universelle Zeit kernel32.dll FileTimeToSystemTime
global Windows-Zeitstempel lokal Windows-Zeitstempel kernel32.dll FileTimeToLocalFileTime
lokal koordinierte, universelle Zeit lokal Windows-Zeitstempel kernel32.dll SystemTimeToFileTime
lokal Windows-Zeitstempel global Windows-Zeitstempel kernel32.dll LocalFileTimeToFileTime
lokal Windows-Zeitstempel lokal koordinierte, universelle Zeit kernel32.dll FileTimeToSystemTime

Im Kapitel "weiteres Material zu diesem Thema - Bibliotheken" ist eine allgemeinfreie und kostenlose Bibliothek aufgelistet, welche für sämtliche Umrechnungen verwendet werden kann.

Maße

Schaltsekunde

Nicht alle, aber manche Zeitsysteme definieren
  • eine "Sekunde" als eine sich unverändernde Dauer und
  • einen "Tag" als eine sich verändernde Dauer.

Der Hintergrund besteht darin,
  • dass durch die Sekunden-Definition die Messbarkeit einfacher ist und damit der Bau von Uhren einfacher und billiger ist und
  • dass durch die Tages-Definition keine Abweichung von einem natürlichen Tag entsteht, welche sich durch die sich langsam reduzierende Rotationsgeschwindigkeit von der Erde um ihre eigene Achse ergibt.

Um nun einen Tag als eine Ganzzahl von Sekunden ausdrücken zu können, gibt es
  • Tage mit und
  • Tage ohne
sogenannter "Schaltsekunde". Auf diese Weise entsteht eine durchschnittliche Annäherung.

Alle nachfolgenden Datums- und Uhrzeitangaben in diesem Unterkapitel über Schaltsekunden sind gemäß dem Zeitsystem "koordinierte, universelle Zeit" und beziehen sich somit auf die Winterzeit von der Zeitzone "Greenwich Mean Time".

Durch eine Schaltsekunde wird
  • entweder der "30.06."
  • oder der "31.12."
verlängert. Das heißt, dass die Uhr nicht schon nach 23:59 auf 00:00 umspringt, sondern erst nach 23:60.

Welche Tage betroffen sind, ist unregelmäßig. Es ist aber durchschnittlich etwa alle 18 Monate 1 Tag betroffen. Der jeweils nächste betroffene Tag wird mindestens 8 Wochen im Voraus durch die Institution "International Earth Rotation Service" bekannt gegeben. Diese Einrichtung nutzt hierzu ihre Publikation "bulletin C".

Es folgt eine vollständige Liste von allen vergangenen Tagen, an welchen jeweils 1 Schaltsekunde verwendet werden sollte. Die Liste ist vom 02.07.2015 und wird von mir vermutlich nicht mehr aktualisiert:
  • 30.06.1972
  • 31.12.1972
  • 31.12.1973
  • 31.12.1974
  • 31.12.1975
  • 31.12.1976
  • 31.12.1977
  • 31.12.1978
  • 31.12.1979
  • 30.06.1981
  • 30.06.1982
  • 30.06.1983
  • 30.06.1985
  • 31.12.1987
  • 31.12.1989
  • 31.12.1990
  • 30.06.1992
  • 30.06.1993
  • 30.06.1994
  • 31.12.1995
  • 30.06.1997
  • 31.12.1998
  • 31.12.2005
  • 31.12.2008
  • 30.06.2012
  • 30.06.2015

Eine Schaltsekunde hat die selbe Dauer, wie eine Sekunde gemäß dem verwendeten Zeitsystem hat.

Es ist derzeit (Stand: 2012) in der Diskussion, ob man die Schaltsekunden wieder abschaffen soll. Ob die Abschaffung
  • ersatzlos oder
  • durch ein anderes System
erfolgen würde, ist derzeit noch nicht festgelegt. Es ist geplant, im Jahr "2015" eine Entscheidung zu veröffentlichen.

Schalttag

Nicht alle, aber manche Zeitsystem definieren
  • einen "Tag" als die Dauer von einer Rotation von der Erde um ihre eigene Achse und
  • ein "Jahr" als die Dauer von einem Umlauf von der Erde um die Sonne.

Ein Jahr entspricht nicht einer Ganzzahl von Tagen. Es ist allerdings praktischer, wenn jedes Jahr eine Ganzzahl von Tagen umfasst, anstatt einer Kommazahl.

Um nun ein Jahr als eine Ganzzahl von Tagen ausdrücken zu können, gibt es
  • Jahre mit und
  • Jahre ohne
sogenannten "Schalttag". Auf diese Weise wird die durchschnittliche Jahresdauer der Dauer von einem Umlauf von der Erde um die Sonne näher gebracht, als dies durch eine unverändernde Ganzzahl von Tagen möglich ist.

Durch einen Schalttag wird der Monat "Februar" um 1 Tag verlängert. Das heißt, dass das Datum nicht schon nach dem 28.02. auf den 01.03. umspringt, sondern erst nach dem 29.02..

Die Regelung, welches Jahr einen Schalttag enthält und welches nicht, unterscheidet sich in den verschiedenen Zeitsystemen in ihrer Komplexität. Durch eine komplexere Regelung kann eine höhere Genauigkeit und damit eine bessere Kompensation vom Unterschied zu einer unverändernden Ganzzahl von Tagen erreicht werden.

Schaltjahr

Ein Schaltjahr ist ein Jahr, welches 1 Schalttag enthält.


die Details

gregorianischer Kalender

abgedeckter Zeitraum

Anfang

Es war der Wunsch vom katholischen Papst "Gregor der XIII.", dass die Tage vor dem 15.10.1582
  • nicht mit der Hilfe vom Zeitsystem "gregorianischer Kalender" angegeben werden,
  • sondern mit der Hilfe von dem Zeitsystem "julianischer Kalender".

Wenn
  • man diesen Wunsch befolgt,
dann
  • bedeutet dies, dass der Tag, welcher
    • mit der Hilfe vom Zeitsystem "gregorianischer Kalender" als "14.10.1582" angegeben werden würde, stattdessen
    • mit der Hilfe vom Zeitsystem "julianischer Kalender" als "04.10.1582" angegeben wird.

Datumsangabe:
(gemäß dem Zeitsystem "julianischer Kalender")
... 02.10.1582 03.10.1582 04.10.1582 05.10.1582 06.10.1582 07.10.1582 ...
Datumsangabe:
(gemäß dem Zeitsystem "gregorianischer Kalender")
... "12.10.1582" "13.10.1582" "14.10.1582" 15.10.1582 16.10.1582 17.10.1582 ...
Wochentag:
(gemäß beiden Zeitsystemen)
... Dienstag Mittwoch Donnerstag Freitag Samstag Sonntag ...

Dies hat den Vorteil, dass
  • auf diese Weise keine bereits aufgeschriebenen Datumsangaben rückwirkend geändert werden müssen,
und den Nachteil, dass
  • auf diese Weise suggeriert wird, dass zwischen
    • dem Tag "04.10.1582" und
    • dem Tag "15.10.1582"
    ein Unterschied von 11 Tagen, anstatt 1 Tag, bestehen würde. Berechnungen werden daher entsprechend komplizierter.

Dieser Wunsch wird von manchen Leuten und von manchen Programmen befolgt und von anderen Leuten und von anderen Programmen nicht.

(Notiz: ich sollte die Unklarheit beseitigen, ob diese Regelung als Wunsch oder als Teil von der Definition anzusehen ist)

Ende

- Das Zeitsystem definiert kein Ende vom abgedeckten Zeitraum. -

Bezeichnung

Das Zeitsystem wird im Englischen als "gregorian calendar" bezeichnet.

Grund von der Einführung

Das Zeitsystem "gregorianischer Kalender" ist ein Nachfolger und dient damit als Ersatz für das Zeitsystem "julianischer Kalender".

Der Hauptvorteil vom neuen Zeitsystem besteht darin, dass die neue Definition, was ein "Jahr" ist, genauer an der tatsächlichen Umlaufdauer von der Erde um die Sonne liegt.
  • Das Zeitsystem "gregorianischer Kalender" definiert ein "Jahr" als einen Zeitraum von durchschnittlich 365,2425 Tagen.
  • Das Zeitsystem "julianischer Kalender" definiert ein "Jahr" als einen Zeitraum von durchschnittlich 365,25 Tagen.

Es ist umstritten, wie lange die tatsächliche Umlaufdauer von der Erde um die Sonne ist. Angaben im Bereich
  • von 365,2422 Tagen
  • bis 365,2424 Tagen
scheinen jedoch einigermaßen verbreitet zu sein. Der große Streitpunkt ist hier
  • weniger die Genauigkeit von der Messung, sondern
  • vielmehr, was in der Messung alles berücksichtigt werden sollte.

Die Definition, was
  • ein "Monat",
  • eine "Woche",
  • ein "Tag",
  • eine "Stunde",
  • eine "Minute" und
  • eine "Sekunde"
ist, wurde hingegen nicht geändert.

Wegen der Ungenauigkeit vom Zeitsystem "julianischer Kalender", im Vergleich zur tatsächlichen Umlaufdauer von der Erde um die Sonne, ist mit der Zeit eine Abweichung von den Vorgängen in der Natur entstanden. Daher wurde zu dem Zeitpunkt, als das Zeitsystem "gregorianischer Kalender" in den ersten Gebieten eingeführt wurde, das Datum um 10 Tage korrigiert.

Soweit ich das überblickt habe, existieren zwischen
  • dem Tag "04.10.1582" gemäß dem Zeitsystem "julianischer Kalender" und
  • dem Tag "15.10.1582" gemäß dem Zeitsystem "gregorianischer Kalender"
10 Tage, welche nicht benutzt werden. Es hätten allerdings 11 Tage ausgelassen werden müssen, damit
  • der Nullpunkt vom Zeitsystem "gregorianischer Kalender" mit
  • dem Nullpunkt vom Zeitsystem "julianischer Kalender"
übereinstimmt. (Notiz: das sollte ich prüfen)

Wenn
  • es sich um einen unbeabsichtigten Fehler handelt,
dann
  • wäre er wahrscheinlich noch in den 3 restlichen Jahren aufgefallen, in welchen der Papst "Gregor der XIII." nach der Einführung noch gelebt hatte.

Die Abweichung von den Vorgängen in der Natur ist für viele Menschen kaum feststellbar gewesen. Die katholische Kirche hatte allerdings ein besonderes Interesse daran, die entstandene zeitliche Abweichung von der Osterfeier zu korrigieren und wieder auf den 21. März zu bringen.

Die Osterfeier pendelte von dann an allerdings zwischen
  • dem 19. März und
  • dem 21. März,
anstatt zwischen
  • dem 20. März und
  • dem 22. März.

Ostern fiel
  • im Jahr 1582 auf den 11. März gemäß dem Zeitsystem "julianischer Kalender" und
  • im Jahr 1583 auf den 21. März gemäß dem Zeitsystem "gregorianischer Kalender".

Maße

Übersicht

Bezeichnung: Definition:
Sekunde bestimmter Anteil von der mittleren Dauer von einem Sonnenaufgang bis zum nächsten Sonnenaufgang
Minute
Stunde
Tag mittlere Dauer von einem Sonnenaufgang bis zum nächsten Sonnenaufgang
Woche bestimmte Anzahl von der mittleren Dauer von einem Sonnenaufgang bis zum nächsten Sonnenaufgang
Monat
Jahr

Sekunde

1 Sekunde = 1/60 Minute

Schaltsekunde
- nicht festgelegt -

Minute

1 Minute = 1/60 Stunde

Stunde

1 Stunde = 1/24 Tag

Tag

1 Tag = mittlere Dauer von einem Sonnenaufgang bis zum nächsten Sonnenaufgang

Es wurde keine neue Definition festgelegt, sondern die Definition vom Zeitsystem julianischer Kalender übernommen.

1. Tag von der Woche
- keine Ahnung -

1. Tag vom Jahr
- nicht festgelegt -

Anzahl der vergangenen Tage seit dem Nullpunkt
Die Anzahl der vergangenen Tage seit dem Nullpunkt können
  • mit der Hilfe von der nachfolgenden Formel und
  • anhand von einem vorgegebenen Datum
berechnet werden.

Diese Formel liefert beispielsweise
  • für den 1. Januar im Jahr "1 nach dem Nullpunkt" den Wert "0 Tage",
  • für den 6. Januar im Jahr "2 nach dem Nullpunkt" den Wert "370 Tage" und
  • für den 31. Dezember im Jahr "1 vor dem Nullpunkt" den Wert "-1 Tag".

Die Formel liefert für alle Tage, unabhängig davon, ob sie sich
  • vor oder
  • nach
dem Nullpunkt befinden, gültige Werte. Hierzu muss allerdings beispielsweise für das Jahr "1 vor dem Nullpunkt"
  • der Wert "-1" als Jahreszahl angegeben werden und nicht
  • der Wert "0".

  1. Zuerst werden folgende Variablen definiert:
    Jahr_vom_Datum = Jahreszahl vom Datum

    Monat_vom_Datum gemäß dieser Tabelle:
    Name vom Monat: Wert für die Variable "Monat_vom_Datum":
    Januar 1
    Februar 2
    März 3
    April 4
    Mai 5
    Juni 6
    Juli 7
    August 8
    September 9
    Oktober 10
    November 11
    Dezember 12

    Tag_vom_Datum = Tag vom Datum als Wert von 1 bis 31
  2. Dann werden die Werte für weitere Hilfsvariablen berechnet:
    # Jahr_für_Schalttage definieren [Start]
    Jahr_für_Schalttage = Jahr_vom_Datum

    if Jahr_vom_Datum<0
    if Monat_vom_Datum>2
    Jahr_für_Schalttage =+ 1
    else
    if Monat_vom_Datum<=2
    Jahr_für_Schalttage =- 1
    # Jahr_für_Schalttage definieren [Ende]

    vergangene_Tage_durch_vergangene_Monate gemäß der folgenden Tabelle:
    Wert von der Variable "Monat_vom_Datum": Wert für die Variable "vergangene_Tage_durch_vergangene_Monate":
    1 0
    2 31
    3 59
    4 90
    5 120
    6 151
    7 181
    8 212
    9 243
    10 273
    11 304
    12 334
  3. Dann wird der Wert für die vergangenen Tage berechnet:
    # die vollen vergangenen Tage reinrechnen
    vergangene_Tage = Tag_vom_Datum - 1

    # die vollen vergangenen Monate reinrechnen (ohne den Schalttag, der möglicherweise im Februar ist)
    vergangene_Tage =+ vergangene_Tage_durch_vergangene_Monate

    # die vollen vergangenen Jahre reinrechnen
    if Jahr_vom_Datum<0
    vergangene_Tage =+ (Jahr_vom_Datum + 1) * 365
    else
    vergangene_Tage =+ (Jahr_vom_Datum - 1) * 365

    if Jahr_vom_Datum<0
    # 365 Tage abziehen, damit die selbe Tabelle für die Variable "vergangene_Tage_durch_vergangene_Monate" verwendet werden kann
    vergangene_Tage =- 365

    # die Schalttage reinrechnen
    if Jahr_für_Schalttage<0
    vergangene_Tage =+ aufrunden(Jahr_für_Schalttage/4)
    vergangene_Tage =- aufrunden(Jahr_für_Schalttage/100)
    vergangene_Tage =+ aufrunden(Jahr_für_Schalttage/400)
    else
    vergangene_Tage =+ abrunden(Jahr_für_Schalttage/4)
    vergangene_Tage =- abrunden(Jahr_für_Schalttage/100)
    vergangene_Tage =+ abrunden(Jahr_für_Schalttage/400)

Schalttag
die Dauer von 1 Schalttag = die Dauer von 1 Tag

Wochentag
Es gibt 7 Wochentage, die sich immer in der selben Reihenfolge wiederholen.

Der Wochentag von einer bestimmten Zeitangabe kann mit der Hilfe von einer der nachfolgenden Formeln berechnet werden. Es gibt
  • die ursprüngliche Wochentagsformel von Herr Gauß.

    Mit ihrer Hilfe kann der Wochentag berechnet werden, wenn ein Datum vorgegeben wird.

    Dies trifft zu, wenn das Datum einen Tag
    • nach
    dem Nullpunkt angibt.
  • die verbesserte Wochentagsformel, welche zwar nicht von Herr Gauß ist, aber auf seiner ursprünglichen Wochentagsformel basiert.

    Mit ihrer Hilfe kann der Wochentag berechnet werden, wenn ein Datum vorgegeben wird.

    Dies trifft zu, unabhängig davon, ob das Datum einen Tag
    • vor oder
    • nach
    dem Nullpunkt angibt.
  • die wiederverwertende Wochentagsformel.

    Mit ihrer Hilfe kann der Wochentag berechnet werden, wenn die Anzahl der vergangenen Tage seit dem Nullpunkt vorgegeben wird.

    Dies trifft zu, unabhängig davon, ob die Anzahl der vergangenen Tage
    • ein negativer oder
    • ein positiver
    Wert ist.

ursprüngliche Wochentagsformel
Diese Formel wurde von Herr Gauß aufgestellt. Sie wird auch "Kalenderformel" genannt.

Mit ihrer Hilfe kann der Wochentag berechnet werden, wenn ein Datum vorgegeben wird.

Dies trifft zu, wenn das Datum einen Tag
  • nach
dem Nullpunkt angibt. Diese Tage sind also
  • der 01.01. im 1. Jahr nach dem Nullpunkt und
  • die folgenden Tage.
In den Tagen vor dem Nullpunkt kann die Formel falsche Wochentage zurückgeben, da im Zeitsystem kein Jahr "0" enthalten ist, dies aber von der Formel nicht berücksichtigt wird.

  1. Zuerst werden folgende Variablen definiert:
    Jahr_vom_Datum = Jahreszahl vom Datum

    Monat_vom_Datum gemäß dieser Tabelle:
    Name vom Monat: Wert für die Variable "Monat_vom_Datum":
    Januar 1
    Februar 2
    März 3
    April 4
    Mai 5
    Juni 6
    Juli 7
    August 8
    September 9
    Oktober 10
    November 11
    Dezember 12

    Tag_vom_Datum = Tag vom Datum als Wert von 1 bis 31
  2. Dann werden diese Hilfsvariablen berechnet:
    if Monat_vom_Datum<=2
    Jahr_für_Formel = Jahr_vom_Datum - 1
    Monat_für_Formel = Monat_vom_Datum + 12
    else
    Jahr_für_Formel = Jahr_vom_Datum
    Monat_für_Formel = Monat_vom_Datum

    Tag_für_Formel = Tag_vom_Datum
  3. Dann wird der Wert für die Variable "Wochentag_als_Ganzzahl" berechnet:
    # den Tag reinrechnen
    Wochentag_als_Ganzzahl = Tag_für_Formel

    # den Monat reinrechnen
    Wochentag_als_Ganzzahl =+ (2 * Monat_für_Formel)
    Wochentag_als_Ganzzahl =+ abrunden(((3 * Monat_für_Formel) + 3)/5)

    # das Jahr reinrechnen
    Wochentag_als_Ganzzahl =+ Jahr_für_Formel

    # die Schalttage reinrechnen
    Wochentag_als_Ganzzahl =+ abrunden(Jahr_für_Formel/4)
    Wochentag_als_Ganzzahl =- abrunden(Jahr_für_Formel/100)
    Wochentag_als_Ganzzahl =+ abrunden(Jahr_für_Formel/400)

    # keine Ahnung, wofür das dienen soll; vielleicht war früher der Sonntag, anstatt dem Montag, der 1. Tag von der Woche (!?)
    Wochentag_als_Ganzzahl =+ 1

    # das Ergebnis auf einen Wert zwischen 0 und 6 reduzieren
    Wochentag_als_Ganzzahl = Wochentag_als_Ganzzahl modulo 7
  4. Dann wird der Wert von der Variable "Wochentag_als_Ganzzahl" gemäß der folgenden Tabelle dekodiert:
    Wert von der Variable "Wochentag_als_Ganzzahl": Name vom Wochentag:
    0 Sonntag
    1 Montag
    2 Dienstag
    3 Mittwoch
    4 Donnerstag
    5 Freitag
    6 Samstag

verbesserte Wochentagsformel
Diese Formel wurde zwar nicht von Herr Gauß aufgestellt, sie basiert aber auf seiner ursprünglichen Wochentagsformel.

Mit ihrer Hilfe kann der Wochentag berechnet werden, wenn ein Datum vorgegeben wird.

Dies trifft zu, unabhängig davon, ob das Datum einen Tag
  • vor oder
  • nach
dem Nullpunkt angibt. Hierzu muss allerdings beispielsweise für das Jahr "1 vor dem Nullpunkt"
  • der Wert "-1" als Jahreszahl angegeben werden und nicht
  • der Wert "0".

Die Formel sollte zudem auf allen CPU-Architekturen, die lange zur Verarbeitung von
  • Divisionen (geteilt rechnen) oder
  • Multiplikationen (Mal rechnen)
benötigen, wie dies zum Beispiel bei der x86-Architektur der Fall ist, deutlich schneller verarbeitet werden.

Desweiteren erleichtert sie das Reinrechnen von den Schalttagen, wenn die Formel durch Maschinensprache von der x86-Architektur implementiert wird. Die ursprüngliche Wochentagsformel hat, unabhängig davon, ob die Jahreszahl
  • eine positive Zahl oder
  • eine negative Zahl
ist, erwartet, dass beim Teilen abgerundet wird. Dies ist bei einer einfachen Division (geteilt rechnen) mit der x86-Architektur allerdings
  • nur bei positiven Zahlen der Fall,
  • nicht aber bei negativen Zahlen.

  1. Zuerst werden folgende Variablen definiert:
    Jahr_vom_Datum = Jahreszahl vom Datum

    Monat_vom_Datum gemäß dieser Tabelle:
    Name vom Monat: Wert für die Variable "Monat_vom_Datum":
    Januar 1
    Februar 2
    März 3
    April 4
    Mai 5
    Juni 6
    Juli 7
    August 8
    September 9
    Oktober 10
    November 11
    Dezember 12

    Tag_vom_Datum = Tag vom Datum als Wert von 1 bis 31
  2. Dann werden diese Hilfsvariablen berechnet:
    # Jahr_für_Schalttage definieren [Start]
    Jahr_für_Schalttage = Jahr_vom_Datum

    if Jahr_vom_Datum<0
    if Monat_vom_Datum>2
    Jahr_für_Schalttage =+ 1
    else
    if Monat_vom_Datum<=2
    Jahr_für_Schalttage =- 1
    # Jahr_für_Schalttage definieren [Ende]

    vergangene_Tage_durch_vergangene_Monate gemäß der folgenden Tabelle:
    Wert von der Variable "Monat_vom_Datum": Wert für die Variable "vergangene_Tage_durch_vergangene_Monate":
    1 0
    2 3
    3 3
    4 6
    5 1
    6 4
    7 6
    8 2
    9 5
    10 0
    11 3
    12 5

    Tag_für_Formel = Tag_vom_Datum
  3. Dann wird der Wert für die Variable "Wochentag_als_Ganzzahl" berechnet:
    # den Tag reinrechnen
    Wochentag_als_Ganzzahl = Tag_für_Formel

    # den Monat reinrechnen
    Wochentag_als_Ganzzahl =+ vergangene_Tage_durch_vergangene_Monate

    # das Jahr reinrechnen
    Wochentag_als_Ganzzahl =+ Jahr_vom_Datum

    if Jahr_vom_Datum>0
    # Hack: Jahr "0" auslassen
    Wochentag_als_Ganzzahl =- 1

    # die Schalttage reinrechnen
    if Jahr_für_Schalttage<0
    Wochentag_als_Ganzzahl =+ aufrunden(Jahr_für_Schalttage/4)
    Wochentag_als_Ganzzahl =- aufrunden(Jahr_für_Schalttage/100)
    Wochentag_als_Ganzzahl =+ aufrunden(Jahr_für_Schalttage/400)
    else
    Wochentag_als_Ganzzahl =+ abrunden(Jahr_für_Schalttage/4)
    Wochentag_als_Ganzzahl =- abrunden(Jahr_für_Schalttage/100)
    Wochentag_als_Ganzzahl =+ abrunden(Jahr_für_Schalttage/400)

    # das Ergebnis auf einen Wert zwischen 0 und 6 reduzieren
    Wochentag_als_Ganzzahl = Wochentag_als_Ganzzahl modulo 7
  4. Dann wird der Wert von der Variable "Wochentag_als_Ganzzahl" gemäß der folgenden Tabelle dekodiert:
    Wert von der Variable "Wochentag_als_Ganzzahl": Name vom Wochentag:
    0 Sonntag
    1 Montag
    2 Dienstag
    3 Mittwoch
    4 Donnerstag
    5 Freitag
    6 Samstag

wiederverwertende Wochentagsformel
Mit der Hilfe von dieser Formel kann der Wochentag berechnet werden, wenn die Anzahl der vergangenen Tage seit dem Nullpunkt vorgegeben wird.

Dies trifft zu, unabhängig davon, ob die Anzahl der vergangenen Tage
  • ein negativer oder
  • ein positiver
Wert ist.

Sie ist besonders geeignet, wenn die Anzahl der vergangenen Tage seit dem Nullpunkt bereits berechnet wurde.

  1. Zuerst wird die Anzahl der vergangenen Tage seit dem Nullpunkt ermittelt.

    Hierfür kann diese Formel verwendet werden.
  2. Dann wird der Wert für die Variable "Wochentag_als_Ganzzahl" berechnet:
    Wochentag_als_Ganzzahl = (vergangene_Tage + 1) modulo 7
  3. Dann wird der Wert von der Variable "Wochentag_als_Ganzzahl" gemäß der folgenden Tabelle dekodiert:
    Wert von der Variable "Wochentag_als_Ganzzahl": Name vom Wochentag:
    0 Sonntag
    1 Montag
    2 Dienstag
    3 Mittwoch
    4 Donnerstag
    5 Freitag
    6 Samstag

Woche

1 Woche = 7 Tage

Kalenderwoche
- nicht festgelegt -

Monat

Anzahl der Tage im Name
gewöhnlichen Jahr: Schaltjahr: gemäß dem Zeitsystem "gregorianischer Kalender": ins Deutsche übersetzt:
31 31 Ianuarius Januar
28 29 Februarius Februar
31 31 Martius März
30 30 Aprilis April
31 31 Maius Mai
30 30 Iunius Juni
31 31 Julius Juli
31 31 Augustus August
30 30 September September
31 31 October Oktober
30 30 November November
31 31 December Dezember

Ich habe die Namen, die gemäß dem Zeitsystem "gregorianischer Kalender" angegeben sind, vom Zeitsystem "römischer Kalender" übernommen.

Dabei habe ich
  • den Monat
    • "Quintilis"
    in
    • "Julius"
    umbenannt, da ich gelesen habe, dass dieser Monat wegen der Einführung vom Zeitsystem, welche durch Julius Cäsar angeordnet wurde, nach seinem Tod ihmzuehren umbenannt wurde und
  • den Monat
    • "Sextilis"
    in
    • "Augustus"
    umbenannt, da ich gelesen habe, dass dieser Monat wegen der Schaltjahr-Korrektur, welche durch Augustus angeordnet wurde, ihmzuehren umbenannt wurde.

Ich habe bisher keine Quelle gefunden, die diese Bezeichnungen bestätigt oder widerlegt.

Jahr

1 Jahr = 12 Monate

1 Jahr ist durchschnittlich 365,2425 Tage lang.

gewöhnliches Jahr bzw. Schaltjahr
in Worten
Wenn sich die Jahreszahl restlos durch 4 Teilen lässt:
Wenn sich die Jahreszahl restlos durch 100 Teilen lässt:
Wenn sich die Jahreszahl restlos durch 400 Teilen lässt, dann
handelt es sich um ein Schaltjahr,
ansonsten
handelt es sich um ein gewöhnliches Jahr.
ansonsten
handelt es sich um ein Schaltjahr.
ansonsten
handelt es sich um ein gewöhnliches Jahr.

für Programmierer
# Variable "Schaltjahr" auf false oder true setzen
#     false = es handelt sich um ein gewöhnliches Jahr
#     true = es handelt sich um ein Schaltjahr

Schaltjahr = (Jahreszahl modulo 4)==0 und ((Jahreszahl modulo 100)!=0 oder (Jahreszahl modulo 400)==0)

signifikante Punkte

Nullpunkt

Aus ergibt sich folgendes Ereignis:
Ereignis: Zeitraum:
Jesus Christus wurde geboren. Irgendwann zwischen
  • dem 31. Dezember im 1. Jahr vor dem Nullpunkt gemäß dem Zeitsystem "gregorianischer Kalender" und
    (das ist der 1. Januar im 1. Jahr nach dem Nullpunkt gemäß dem Zeitsystem "julianischer Kalender")
  • dem 30. Dezember im 1. Jahr nach dem Nullpunkt gemäß dem Zeitsystem "gregorianischer Kalender"
    (das ist der 31. Dezember im 1. Jahr nach dem Nullpunkt gemäß dem Zeitsystem "julianischer Kalender").

Mir ist nicht bekannt, ob für dieses Zeitsystem ein eigener Nullpunkt definiert ist. Es sieht danach aus, als wenn der Nullpunkt vom Zeitsystem "julianischen Kalender" gemäß dem Mönch "Dionysius Exiguus" übernommen wurde.

Im Zeitsystem "gregorianischer Kalender" gibt es kein Jahr "0".

Referenz(en)

Ereignis: Zeitraum:
Der Donnerstag "04.10.1582" gemäß dem Zeitsystem "julianischer Kalender" hat stattgefunden. Am Donnerstag "14.10.1582" gemäß dem Zeitsystem "gregorianischer Kalender".
Der Freitag "05.10.1582" gemäß dem Zeitsystem "julianischer Kalender" hat stattgefunden. Am Freitag "15.10.1582" gemäß dem Zeitsystem "gregorianischer Kalender".

ISO 8601

abgedeckter Zeitraum

Anfang

- Das Zeitsystem definiert kein Anfang vom abgedeckten Zeitraum. -

Ende

- Das Zeitsystem definiert kein Ende vom abgedeckten Zeitraum. -

Anerkennung

Das Zeitsystem, das in diesem Kapitel beschrieben ist, ist nicht allgemein anerkannt.

Als ich mich mit Fragen bezüglich diesem Zeitsystem an "International Organization for Standardization" gewendet hatte wurde mir mitgeteilt, dass "International Organization for Standardization" selbst über keine Experten auf diesem Gebiet verfügt, sondern dass sie ihre Aufgabe lediglich darin sehen, die verschiedenen nationalen Normungs-Institute bei ihrer Zusammenarbeit zu unterstützen. Außerdem wurde ich auf "DIN Deutsches Institut für Normung e. V." verwiesen, die in meinem Fall als Deutscher für die Beantwortung zuständig wären.

Als ich mich mit den selben Fragen an diesen Verein gewendet hatte, wurde mir mitgeteilt, dass sie einen Mitarbeiter vom für die Norm "ISO 8601" zuständigen nationalen Gremium kontaktiert hätten und daraufhin zu der Auffassung gekommen sind, dass die Norm kein Zeitsystem definiert, sondern lediglich die Darstellung von Zeitangaben, die letztendlich gemäß einem anderen Zeitsystem, zum Beispiel dem Zeitsystem "gregorianischer Kalender", zu interpretieren sind.

Obwohl also das zuständige Gremium, das vermutlich auch die Norm "ISO 8601" selbst geschrieben hat, der Auffassung ist, dass sie kein eigenes Zeitsystem definiert haben, bin ich persönlich dennoch der Meinung, dass diese Norm durchaus ein eigenes Zeitsystem definiert. Ich kann sogar soweit gehen und bezeugen, dass ich von den Spezifikationsbeschreibungen, die ich über die verschiedenen Zeitsysteme gelesen habe, die Norm "ISO 8601" für relativ detailiert halte.

Dieses Zeitsystem ist meiner Meinung nach eine Mischung aus Es unterscheidet sich allerdings in einigen Aspekten. Es unterscheidet sich soweit, dass Zeitangaben,
  • die gemäß dem Zeitsystem von der Norm "ISO 8601" zu interpretieren sind und
  • die vor dem Nullpunkt liegen,
nicht 1:1 in Zeitangaben übernommen werden können, sondern umgerechnet werden müssen.

Nach der Umrechnung entsprechen solche Datumsangaben
  • weder vom Tag,
  • noch vom Monat,
  • noch vom Jahr
her den Angaben aus der Quelle. Wegen der unterschiedlichen Sekundendefinitionen entsprechen genau genommen auch
  • die Sekunden-Angabe,
  • die Minuten-Angabe und
  • die Stunden-Angabe
nicht exakt den selben Angaben aus der Uhrzeit von der Quelle.

Aus diesem Grund bin ich persönlich davon überzeugt, dass die Norm "ISO 8601" ein eigenes Zeitsystem definiert.

Andernfalls wäre es ein Versuch, das Zeitsystem "gregorianischer Kalender" umzudefinieren. Ich bin zwar kein Katholik, aber wenn das irgendjemandem zustehen würde, dann der katholischen Kirche, da sie der Urheber von diesem Zeitsystem ist.

Bezeichnung

Das Zeitsystem wird im Englischen ebenfalls durch die Bezeichnung von der Norm "ISO 8601" identifiziert.

Grund von der Einführung

Kein Aspekt vom Zeitsystem, das durch die Norm "ISO 8601" definiert ist, war ein Grund, warum die Norm eingeführt wurde. Das Zeitsystem ist allerdings nicht das Einzige, das diese Norm definiert.

Ein Großteil von der Norm bezieht sich auf die Darstellung von Zeitangaben.

Die Norm wurde im Wesentlichen eingeführt, um Missverständnisse bei der Interpretation von Zeitangaben zukünftig leichter vermeiden zu können.

Format: Normen und Regionen:
JJJJ.MM.TT.
  • Lettland und
  • Litauen
TT.MM.JJJJ
  • Deutschland

JJJJ/MM/TT
  • Südafrika
MM/TT/JJJJ
  • USA
TT/MM JJJJ
  • Usbekistan
TT/MM/JJJJ
  • England

JJJJ-MM-TT
  • ISO 8601 und
  • Polen
TT-MM-JJJJ
  • Färöer

Durch die Darstellung gemäß der Norm "ISO 8601" wird die Eindeutigkeit allerdings nicht erhöht, da der Interpreter immernoch die Kodierung von der Zeitangabe kennen muss. Wegen der Norm muss ein Interpreter nun sogar 1 weitere Kodierung kennen.

Maße

Übersicht

Bezeichnung: Definition:
Sekunde bestimmte Anzahl an Schwingungen von einem Cäsium-Atom
Minute
Stunde
Tag
Woche

Kalendertag 1 Zeitraum zwischen einer Mitternacht und der folgenden Mitternacht
Kalenderwoche bestimmte Anzahl an Zeiträumen zwischen einer Mitternacht und der folgenden Mitternacht
Monat
Kalendermonat
Jahr

Kalenderjahr 1 Umlaufdauer von der Erde um die Sonne

Sekunde

Die Definition von "Comité International des Poids et Mesures" soll verwendet werden. Diese besagt vereinfacht ausgedrückt:
Die Dauer von 9.192.631.770 Schwingungen von einem Cäsium-Atom.

Durch diese Definition ist eine Sekunde immer gleich lang.

Durch diese Definition lässt sich allerdings mit einer Ganzzahl von Sekunden
  • weder die Dauer von einer Rotation von der Erde um ihre eigene Achse ausdrücken,
  • noch die Dauer von einem Umlauf von der Erde um die Sonne.

Die meisten Uhren werden allerdings
  • weder nach dem Einen,
  • noch nach dem Anderen
gerichtet, sondern Anhand von einer sich nicht verändernden Dauer.

Schaltsekunde
Die Norm "ISO 8601" macht nach meinem Verständnis keine klare Auskunft darüber, ob im definierten Zeitsystem Schaltsekunden verwendet werden sollen.

Im Namen von "International Organization for Standardization" wurde ein Dokument geschrieben, in dem die Norm "ISO 8601" definiert ist.
Dass Schaltsekunden ein Bestandteil von dem Zeitsystem sind, das durch die Norm "ISO 8601" definiert ist, ist an keiner Stelle im Dokument enthalten.

Minute

1 Minute = 60 Sekunden

Stunde

1 Stunde = 60 Minuten

Tag

1 Tag = 24 Stunden

1. Tag von der Woche
1. Tag von der Woche = Montag

1. Tag vom Jahr
1. Tag vom Jahr = 1. Januar

Anzahl der vergangenen Tage seit dem Nullpunkt
Die Anzahl der vergangenen Tage seit dem Nullpunkt können
  • mit der Hilfe von der nachfolgenden Formel und
  • anhand von einem vorgegebenen Datum
berechnet werden.

Diese Formel liefert beispielsweise
  • für den 1. Januar im Jahr "0" den Wert "0 Tage",
  • für den 2. Januar im Jahr "1" den Wert "367 Tage" und
  • für den 31. Dezember im Jahr "-1" den Wert "-1 Tag".

Die Formel liefert für alle Tage, unabhängig davon, ob sie sich
  • vor oder
  • nach
dem Nullpunkt befinden, gültige Werte. Hierzu muss allerdings beispielsweise für das Jahr "-1"
  • der Wert "-1" als Jahreszahl angegeben werden und nicht
  • der Wert "0".

  1. Zuerst werden folgende Variablen definiert:
    Jahr_vom_Datum = Jahreszahl vom Datum

    Monat_vom_Datum gemäß dieser Tabelle:
    Name vom Monat: Wert für die Variable "Monat_vom_Datum":
    Januar 1
    Februar 2
    März 3
    April 4
    Mai 5
    Juni 6
    Juli 7
    August 8
    September 9
    Oktober 10
    November 11
    Dezember 12

    Tag_vom_Datum = Tag vom Datum als Wert von 1 bis 31
  2. Dann werden die Werte für weitere Hilfsvariablen berechnet:
    # Jahr_für_Schalttage definieren [Start]
    Jahr_für_Schalttage = Jahr_vom_Datum

    if Jahr_vom_Datum<0
    if Monat_vom_Datum>2
    Jahr_für_Schalttage =+ 1
    else
    if Monat_vom_Datum<=2
    Jahr_für_Schalttage =- 1
    # Jahr_für_Schalttage definieren [Ende]

    vergangene_Tage_durch_vergangene_Monate gemäß der folgenden Tabelle:
    Wert von der Variable "Monat_vom_Datum": Wert für die Variable "vergangene_Tage_durch_vergangene_Monate":
    1 0
    2 31
    3 59
    4 90
    5 120
    6 151
    7 181
    8 212
    9 243
    10 273
    11 304
    12 334
  3. Dann wird der Wert für die vergangenen Tage berechnet:
    # die vollen vergangenen Tage reinrechnen
    vergangene_Tage = Tag_vom_Datum - 1

    # die vollen vergangenen Monate reinrechnen (ohne den Schalttag, der möglicherweise im Februar ist)
    vergangene_Tage =+ vergangene_Tage_durch_vergangene_Monate

    # die vollen vergangenen Jahre reinrechnen
    if Jahr_vom_Datum<0
    vergangene_Tage =+ (Jahr_vom_Datum + 1) * 365
    else
    vergangene_Tage =+ Jahr_vom_Datum * 365

    if Jahr_vom_Datum<0
    # 365 Tage abziehen, damit die selbe Tabelle für die Variable "vergangene_Tage_durch_vergangene_Monate" verwendet werden kann
    vergangene_Tage =- 365

    # die Schalttage reinrechnen
    if Jahr_für_Schalttage<0
    vergangene_Tage =+ aufrunden(Jahr_für_Schalttage/4)
    vergangene_Tage =- aufrunden(Jahr_für_Schalttage/100)
    vergangene_Tage =+ aufrunden(Jahr_für_Schalttage/400)
    else
    vergangene_Tage =+ abrunden(Jahr_für_Schalttage/4)
    vergangene_Tage =- abrunden(Jahr_für_Schalttage/100)
    vergangene_Tage =+ abrunden(Jahr_für_Schalttage/400)

    if Jahr_vom_Datum>0 oder (Jahr_vom_Datum==0 und Monat_vom_Datum>2)
    # Hack: den Schalttag im Jahr "0" reinrechnen
    vergangene_Tage =+ 1

Kalendertag
1 Kalendertag = Zeitraum zwischen einer Mitternacht und der folgenden Mitternacht

Schalttag
die Dauer von 1 Schalttag = die Dauer von 1 Kalendertag

Wochentag
Es gibt 7 Wochentage, die sich immer in der selben Reihenfolge wiederholen. Für die einzelnen Tage sind englisch-sprachige Namen vorgesehen:
fortlaufende Nummer: Name
gemäß ISO 8601: ins Deutsche übersetzt:
1 Monday Montag
2 Tuesday Dienstag
3 Wednesday Mittwoch
4 Thursday Donnerstag
5 Friday Freitag
6 Saturday Samstag
7 Sunday Sonntag

Der Wochentag von einer bestimmten Zeitangabe kann mit der Hilfe von einer der nachfolgenden Formeln berechnet werden. Es gibt
verbesserte Wochentagsformel
Diese Formel basiert auf der verbesserten Wochentagsformel für das Zeitsystem "gregorianischer Kalender".

Mit ihrer Hilfe kann der Wochentag berechnet werden, wenn ein Datum vorgegeben wird.

Dies trifft zu, unabhängig davon, ob das Datum einen Tag
  • vor oder
  • nach
dem Nullpunkt angibt. Hierzu muss allerdings beispielsweise für das Jahr "-1"
  • der Wert "-1" als Jahreszahl angegeben werden und nicht
  • der Wert "0".

  1. Zuerst werden folgende Variablen definiert:
    Jahr_vom_Datum = Jahreszahl vom Datum

    Monat_vom_Datum gemäß dieser Tabelle:
    Name vom Monat: Wert für die Variable "Monat_vom_Datum":
    Januar 1
    Februar 2
    März 3
    April 4
    Mai 5
    Juni 6
    Juli 7
    August 8
    September 9
    Oktober 10
    November 11
    Dezember 12

    Tag_vom_Datum = Tag vom Datum als Wert von 1 bis 31
  2. Dann werden diese Hilfsvariablen berechnet:
    # Jahr_für_Schalttage definieren [Start]
    Jahr_für_Schalttage = Jahr_vom_Datum

    if Jahr_vom_Datum<0
    if Monat_vom_Datum>2
    Jahr_für_Schalttage =+ 1
    else
    if Monat_vom_Datum<=2
    Jahr_für_Schalttage =- 1
    # Jahr_für_Schalttage definieren [Ende]

    vergangene_Tage_durch_vergangene_Monate gemäß der folgenden Tabelle:
    Wert von der Variable "Monat_vom_Datum": Wert für die Variable "vergangene_Tage_durch_vergangene_Monate":
    1 0
    2 3
    3 3
    4 6
    5 1
    6 4
    7 6
    8 2
    9 5
    10 0
    11 3
    12 5

    Tag_für_Formel = Tag_vom_Datum
  3. Dann wird der Wert für die Variable "Wochentag_als_Ganzzahl" berechnet:
    # den Tag reinrechnen
    Wochentag_als_Ganzzahl = Tag_für_Formel

    # den Monat reinrechnen
    Wochentag_als_Ganzzahl =+ vergangene_Tage_durch_vergangene_Monate

    # das Jahr reinrechnen
    Wochentag_als_Ganzzahl =+ Jahr_vom_Datum

    # Hack: das Jahr "0" und seinen Schalttag auslassen, damit die selbe Dekodierungstabelle verwendet werden kann
    Wochentag_als_Ganzzahl =- 2

    # die Schalttage reinrechnen
    if Jahr_für_Schalttage<0
    Wochentag_als_Ganzzahl =+ aufrunden(Jahr_für_Schalttage/4)
    Wochentag_als_Ganzzahl =- aufrunden(Jahr_für_Schalttage/100)
    Wochentag_als_Ganzzahl =+ aufrunden(Jahr_für_Schalttage/400)
    else
    Wochentag_als_Ganzzahl =+ abrunden(Jahr_für_Schalttage/4)
    Wochentag_als_Ganzzahl =- abrunden(Jahr_für_Schalttage/100)
    Wochentag_als_Ganzzahl =+ abrunden(Jahr_für_Schalttage/400)

    if Jahr_vom_Datum>0 oder (Jahr_vom_Datum==0 und Monat_vom_Datum>2)
    # Hack: den Schalttag im Jahr "0" reinrechnen
    vergangene_Tage =+ 1

    # das Ergebnis auf einen Wert zwischen 0 und 6 reduzieren
    Wochentag_als_Ganzzahl = Wochentag_als_Ganzzahl modulo 7
  4. Dann wird der Wert von der Variable "Wochentag_als_Ganzzahl" gemäß der folgenden Tabelle dekodiert:
    Wert von der Variable "Wochentag_als_Ganzzahl": Name vom Wochentag
    gemäß ISO 8601: ins Deutsche übersetzt:
    0 Sunday Sonntag
    1 Monday Montag
    2 Tuesday Dienstag
    3 Wednesday Mittwoch
    4 Thursday Donnerstag
    5 Friday Freitag
    6 Saturday Samstag

wiederverwertende Wochentagsformel
Mit der Hilfe von dieser Formel kann der Wochentag berechnet werden, wenn die Anzahl der vergangenen Tage seit dem Nullpunkt vorgegeben wird.

Dies trifft zu, unabhängig davon, ob die Anzahl der vergangenen Tage
  • ein negativer oder
  • ein positiver
Wert ist.

Sie ist besonders geeignet, wenn die Anzahl der vergangenen Tage seit dem Nullpunkt bereits berechnet wurde.

  1. Zuerst wird die Anzahl der vergangenen Tage seit dem Nullpunkt ermittelt.

    Hierfür kann diese Formel verwendet werden.
  2. Dann wird der Wert für die Variable "Wochentag_als_Ganzzahl" berechnet:
    Wochentag_als_Ganzzahl = (vergangene_Tage - 1) modulo 7
  3. Dann wird der Wert von der Variable "Wochentag_als_Ganzzahl" gemäß der folgenden Tabelle dekodiert:
    Wert von der Variable "Wochentag_als_Ganzzahl": Name vom Wochentag
    gemäß ISO 8601: ins Deutsche übersetzt:
    0 Sunday Sonntag
    1 Monday Montag
    2 Tuesday Dienstag
    3 Wednesday Mittwoch
    4 Thursday Donnerstag
    5 Friday Freitag
    6 Saturday Samstag

Woche

1 Woche = 7 Tage

Kalenderwoche
1 Kalenderwoche = Zeit von 7 Kalendertagen; beginnt mit dem Wochentag "Montag" und endet mit dem Wochentag "Sonntag"

Kalenderwochennummer
Eine Kalenderwochennummer ist eine fortlaufende Nummer für jede Kalenderwoche von einem Jahr.

  • Die erste Kalenderwoche von einem Jahr startet ebenfalls mit dem Wochentag "Montag", sie muss allerdings den ersten Tag vom Jahr enthalten, der der Wochentag "Donnerstag" ist.

    Anstatt sich nach dem Donnerstag zu richten, kann die erste Kalenderwoche auch anhand daran ermittelt werden, dass die erste Kalenderwoche immer den 4. Januar enthält.
  • Die letzte Kalenderwoche von einem Jahr endet unmittelbar vor der ersten Kalenderwoche vom Folgejahr.

Beispiel für das Jahr "2000":
Datum: Monat und Jahr: Januar 2000
Tag: ... 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ...
Kalenderwoche: 52. vom Jahr 1999 1. vom Jahr 2000 2. vom Jahr 2000
Wochentag: ... Samstag Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag Sonntag Montag Dienstag ...

Beispiel für das Jahr "2003":
Datum: Monat und Jahr: Dezember 2002 Januar 2003
Tag: ... 28. 29. 30. 31. 1. 2. 3. 4. 5. 6. 7. ...
Kalenderwoche: 52. vom Jahr 2002 1. vom Jahr 2003 2. vom Jahr 2003
Wochentag: ... Samstag Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag Sonntag Montag Dienstag ...

Ein Jahr kann
  • 52 oder
  • 53
Kalenderwochen umfassen.

Monat

Anzahl der Kalendertage im Name
gewöhnlichen Jahr: Schaltjahr: gemäß ISO 8601: ins Deutsche übersetzt:
31 31 January Januar
28 29 February Februar
31 31 March März
30 30 April April
31 31 May Mai
30 30 June Juni
31 31 July Juli
31 31 August August
30 30 September September
31 31 October Oktober
30 30 November November
31 31 December Dezember

Kalendermonat
1 Kalendermonat = 1 Monat

Jahr

1 gewöhnliches Jahr = 365 Kalendertage
1 Schaltjahr = 366 Kalendertage; das ist ein gewöhnliches Jahr + 1 Schalttag

1 Jahr ist durchschnittlich 365,2425 Kalendertage lang.

gewöhnliches Jahr bzw. Schaltjahr
in Worten
Wenn sich die Jahreszahl restlos durch 4 Teilen lässt:
Wenn sich die Jahreszahl restlos durch 100 Teilen lässt:
Wenn sich die Jahreszahl restlos durch 400 Teilen lässt, dann
handelt es sich um ein Schaltjahr,
ansonsten
handelt es sich um ein gewöhnliches Jahr.
ansonsten
handelt es sich um ein Schaltjahr.
ansonsten
handelt es sich um ein gewöhnliches Jahr.

für Programmierer
# Variable "Schaltjahr" auf false oder true setzen
#     false = es handelt sich um ein gewöhnliches Jahr
#     true = es handelt sich um ein Schaltjahr

Schaltjahr = (Jahreszahl modulo 4)==0 und ((Jahreszahl modulo 100)!=0 oder (Jahreszahl modulo 400)==0)

Kalenderjahr
1 Kalenderjahr = die Umlaufdauer von der Erde um die Sonne; diese Dauer kann nur annäherungsweise mit einer Ganzzahl von Kalendertagen ausgedrückt werden

signifikante Punkte

Nullpunkt

Ereignis: Zeitpunkt:
- Zu diesem Zeitpunkt hat kein Ereignis stattgefunden, auf welches bezug genommen wird. - Um 0:00 Uhr vom 1. Januar im Jahr "0" gemäß dem Zeitsystem von der Norm "ISO 8601"

In diesem Zeitsystem gibt es ein Jahr "0".

Referenz(en)

Ereignis: Zeitpunkt/-raum:
Die Meterkonvention (im Französischen: "Convention du Mètre") wurde in Paris unterschrieben. Irgendwann am 20.05.1875

Der Tag "20.05.1875" gemäß dem Zeitsystem "gregorianischer Kalender" hat stattgefunden. Am 20.05.1875 gemäß dem Zeitsystem von der Norm "ISO 8601".

Der Donnerstag "04.10.1582" gemäß dem Zeitsystem "julianischer Kalender" hat stattgefunden. Am Donnerstag "14.10.1582" gemäß dem Zeitsystem "gregorianischer Kalender".
Der Freitag "05.10.1582" gemäß dem Zeitsystem "julianischer Kalender" hat stattgefunden. Am Freitag "15.10.1582" gemäß dem Zeitsystem "gregorianischer Kalender".

Es ist Mitternacht. 0:00 Uhr

Der aktuelle Wochentag heißt übersetzt "Samstag". Am 01.01.2000 gemäß dem Zeitsystem von der Norm "ISO 8601".

julianischer Kalender

abgedeckter Zeitraum

Anfang

- keine Ahnung -

Ende

- Das Zeitsystem definiert kein Ende vom abgedeckten Zeitraum. -

Bezeichnung

Das Zeitsystem wird im Englischen als "julian calendar" bezeichnet.

Grund von der Einführung

- keine Ahnung -

Maße

Übersicht

Bezeichnung: Definition:
Minute bestimmter Anteil von der mittleren Dauer von einem Sonnenaufgang bis zum nächsten Sonnenaufgang
Stunde
Tag mittlere Dauer von einem Sonnenaufgang bis zum nächsten Sonnenaufgang
Woche bestimmte Anzahl von der mittleren Dauer von einem Sonnenaufgang bis zum nächsten Sonnenaufgang
Monat
Jahr

Sekunde

- nicht festgelegt -

Schaltsekunde
- nicht festgelegt -

Minute

1 Minute = 1/60 Stunde

Stunde

1 Stunde = 1/24 Tag

Tag

1 Tag = mittlere Dauer von einem Sonnenaufgang bis zum nächsten Sonnenaufgang

1. Tag von der Woche
- keine Ahnung -

1. Tag vom Jahr
1. Tag vom Jahr = 1. Januar

Anzahl der vergangenen Tage seit dem Nullpunkt
Die Anzahl der vergangenen Tage seit dem Nullpunkt können
  • mit der Hilfe von der nachfolgenden Formel und
  • anhand von einem vorgegebenen Datum
berechnet werden.

Diese Formel liefert beispielsweise
  • für den 1. Januar im Jahr "1 nach dem Nullpunkt/nach Christus" den Wert "0 Tage",
  • für den 6. Januar im Jahr "2 nach dem Nullpunkt/nach Christus" den Wert "370 Tage" und
  • für den 31. Dezember im Jahr "1 vor dem Nullpunkt/vor Christus" den Wert "-1 Tag".

Die Formel liefert für alle Tage, unabhängig davon, ob sie sich
  • vor oder
  • nach
dem Nullpunkt befinden, gültige Werte. Hierzu muss allerdings beispielsweise für das Jahr "1 vor dem Nullpunkt/vor Christus"
  • der Wert "-1" als Jahreszahl angegeben werden und nicht
  • der Wert "0".

  1. Zuerst werden folgende Variablen definiert:
    Jahr_vom_Datum = Jahreszahl vom Datum

    Monat_vom_Datum gemäß dieser Tabelle:
    Name vom Monat: Wert für die Variable "Monat_vom_Datum":
    Januar 1
    Februar 2
    März 3
    April 4
    Mai 5
    Juni 6
    Juli 7
    August 8
    September 9
    Oktober 10
    November 11
    Dezember 12

    Tag_vom_Datum = Tag vom Datum als Wert von 1 bis 31
  2. Dann werden die Werte für weitere Hilfsvariablen berechnet:
    # Jahr_für_Schalttage definieren [Start]
    Jahr_für_Schalttage = Jahr_vom_Datum

    if Jahr_vom_Datum<0
    if Monat_vom_Datum>2
    Jahr_für_Schalttage =+ 1
    else
    if Monat_vom_Datum<=2
    Jahr_für_Schalttage =- 1
    # Jahr_für_Schalttage definieren [Ende]

    vergangene_Tage_durch_vergangene_Monate gemäß der folgenden Tabelle:
    Wert von der Variable "Monat_vom_Datum": Wert für die Variable "vergangene_Tage_durch_vergangene_Monate":
    1 0
    2 31
    3 59
    4 90
    5 120
    6 151
    7 181
    8 212
    9 243
    10 273
    11 304
    12 334
  3. Dann wird der Wert für die vergangenen Tage berechnet:
    # die vollen vergangenen Tage reinrechnen
    vergangene_Tage = Tag_vom_Datum - 1

    # die vollen vergangenen Monate reinrechnen (ohne den Schalttag, der möglicherweise im Februar ist)
    vergangene_Tage =+ vergangene_Tage_durch_vergangene_Monate

    # die vollen vergangenen Jahre reinrechnen
    if Jahr_vom_Datum<0
    vergangene_Tage =+ (Jahr_vom_Datum + 1) * 365
    else
    vergangene_Tage =+ (Jahr_vom_Datum - 1) * 365

    if Jahr_vom_Datum<0
    # 365 Tage abziehen, damit die selbe Tabelle für die Variable "vergangene_Tage_durch_vergangene_Monate" verwendet werden kann
    vergangene_Tage =- 365

    # die Schalttage gemäß der Schaltjahr-Regel "Jahreszahl modulo 4" reinrechnen
    if Jahr_für_Schalttage<0
    vergangene_Tage =+ aufrunden(Jahr_für_Schalttage/4)
    else
    vergangene_Tage =+ abrunden(Jahr_für_Schalttage/4)

    # Hack: die gewöhnliche Schaltjahr-Regel "Jahreszahl modulo 4" zwischen den Jahren "45 vor Christus" und "4 nach Christus" wieder aufheben
    if Jahr_für_Schalttage<0
    vergangene_Tage =- aufrunden(min(max(Jahr_für_Schalttage, -45), 4)/4)
    else
    vergangene_Tage =- abrunden(min(max(Jahr_für_Schalttage, -45), 4)/4)

    if Jahr_vom_Datum<=-9
    # Hack: die Schaltjahr-Regel "Jahreszahl modulo 3" zwischen den Jahren "45 vor Christus" und "9 vor Christus" anwenden
    vergangene_Tage =+ aufrunden(max(Jahr_für_Schalttage, -45)/3) + 2

Schalttag
die Dauer von 1 Schalttag = die Dauer von 1 Tag

Wochentag
Es gibt 7 Wochentage, die sich immer in der selben Reihenfolge wiederholen.

Der Wochentag von einer bestimmten Zeitangabe kann mit der Hilfe von einer der nachfolgenden Formeln berechnet werden. Es gibt
verbesserte Wochentagsformel
Diese Formel basiert auf der verbesserten Wochentagsformel für das Zeitsystem "gregorianischer Kalender".

Mit ihrer Hilfe kann der Wochentag berechnet werden, wenn ein Datum vorgegeben wird.

Dies trifft zu, unabhängig davon, ob das Datum einen Tag
  • vor oder
  • nach
dem Nullpunkt angibt. Hierzu muss allerdings beispielsweise für das Jahr "1 vor dem Nullpunkt"
  • der Wert "-1" als Jahreszahl angegeben werden und nicht
  • der Wert "0".

  1. Zuerst werden folgende Variablen definiert:
    Jahr_vom_Datum = Jahreszahl vom Datum

    Monat_vom_Datum gemäß dieser Tabelle:
    Name vom Monat: Wert für die Variable "Monat_vom_Datum":
    Januar 1
    Februar 2
    März 3
    April 4
    Mai 5
    Juni 6
    Juli 7
    August 8
    September 9
    Oktober 10
    November 11
    Dezember 12

    Tag_vom_Datum = Tag vom Datum als Wert von 1 bis 31
  2. Dann werden diese Hilfsvariablen berechnet:
    # Jahr_für_Schalttage definieren [Start]
    Jahr_für_Schalttage = Jahr_vom_Datum

    if Jahr_vom_Datum<0
    if Monat_vom_Datum>2
    Jahr_für_Schalttage =+ 1
    else
    if Monat_vom_Datum<=2
    Jahr_für_Schalttage =- 1
    # Jahr_für_Schalttage definieren [Ende]

    vergangene_Tage_durch_vergangene_Monate gemäß der folgenden Tabelle:
    Wert von der Variable "Monat_vom_Datum": Wert für die Variable "vergangene_Tage_durch_vergangene_Monate":
    1 0
    2 3
    3 3
    4 6
    5 1
    6 4
    7 6
    8 2
    9 5
    10 0
    11 3
    12 5

    Tag_für_Formel = Tag_vom_Datum
  3. Dann wird der Wert für die Variable "Wochentag_als_Ganzzahl" berechnet:
    # den Tag reinrechnen
    Wochentag_als_Ganzzahl = Tag_für_Formel

    # den Monat reinrechnen
    Wochentag_als_Ganzzahl =+ vergangene_Tage_durch_vergangene_Monate

    # das Jahr reinrechnen
    Wochentag_als_Ganzzahl =+ Jahr_vom_Datum

    if Jahr_vom_Datum>0
    # Hack: Jahr "0" auslassen
    Wochentag_als_Ganzzahl =- 1

    # die Schalttage gemäß der Schaltjahr-Regel "Jahreszahl modulo 4" reinrechnen
    if Jahr_für_Schalttage<0
    Wochentag_als_Ganzzahl =+ aufrunden(Jahr_für_Schalttage/4)
    else
    Wochentag_als_Ganzzahl =+ abrunden(Jahr_für_Schalttage/4)

    # Hack: die gewöhnliche Schaltjahr-Regel "Jahreszahl modulo 4" zwischen den Jahren "45 vor Christus" und "4 nach Christus" wieder aufheben
    if Jahr_für_Schalttage<0
    Wochentag_als_Ganzzahl =- aufrunden(min(max(Jahr_für_Schalttage, -45), 4)/4)
    else
    Wochentag_als_Ganzzahl =- abrunden(min(max(Jahr_für_Schalttage, -45), 4)/4)

    if Jahr_vom_Datum<=-9
    # Hack: die Schaltjahr-Regel "Jahreszahl modulo 3" zwischen den Jahren "45 vor Christus" und "9 vor Christus" anwenden
    vergangene_Tage =+ aufrunden(max(Jahr_für_Schalttage, -45)/3) + 2

    # 1. Januar im Jahr "1 nach Christus" zum Sonntag, anstatt Montag, machen; hierdurch kann die selbe Dekodierungstabelle verwendet werden
    Wochentag_als_Ganzzahl =- 1

    # das Ergebnis auf einen Wert zwischen 0 und 6 reduzieren
    Wochentag_als_Ganzzahl = Wochentag_als_Ganzzahl modulo 7
  4. Dann wird der Wert von der Variable "Wochentag_als_Ganzzahl" gemäß der folgenden Tabelle dekodiert:
    Wert von der Variable "Wochentag_als_Ganzzahl": Name vom Wochentag:
    0 Sonntag
    1 Montag
    2 Dienstag
    3 Mittwoch
    4 Donnerstag
    5 Freitag
    6 Samstag

wiederverwertende Wochentagsformel
Mit der Hilfe von dieser Formel kann der Wochentag berechnet werden, wenn die Anzahl der vergangenen Tage seit dem Nullpunkt vorgegeben wird.

Dies trifft zu, unabhängig davon, ob die Anzahl der vergangenen Tage
  • ein negativer oder
  • ein positiver
Wert ist.

Sie ist besonders geeignet, wenn die Anzahl der vergangenen Tage seit dem Nullpunkt bereits berechnet wurde.

  1. Zuerst wird die Anzahl der vergangenen Tage seit dem Nullpunkt ermittelt.

    Hierfür kann diese Formel verwendet werden.
  2. Dann wird der Wert für die Variable "Wochentag_als_Ganzzahl" berechnet:
    Wochentag_als_Ganzzahl = vergangene_Tage modulo 7
  3. Dann wird der Wert von der Variable "Wochentag_als_Ganzzahl" gemäß der folgenden Tabelle dekodiert:
    Wert von der Variable "Wochentag_als_Ganzzahl": Name vom Wochentag:
    0 Sonntag
    1 Montag
    2 Dienstag
    3 Mittwoch
    4 Donnerstag
    5 Freitag
    6 Samstag

Woche

1 Woche = 7 Tage

Kalenderwoche
- nicht festgelegt -

Monat

Anzahl der Tage im Name
gewöhnlichen Jahr: Schaltjahr: gemäß dem Zeitsystem "julianischer Kalender": ins Deutsche übersetzt:
31 31 Ianuarius Januar
28 29 Februarius Februar
31 31 Martius März
30 30 Aprilis April
31 31 Maius Mai
30 30 Iunius Juni
31 31 Quintilis Juli
31 31 Sextilis August
30 30 September September
31 31 October Oktober
30 30 November November
31 31 December Dezember

Ich habe die Namen, die gemäß dem Zeitsystem "julianischer Kalender" angegeben sind, ungeändert vom Zeitsystem "römischer Kalender" übernommen. Es ist meine persönliche Vermutung, dass die Namen nicht geändert wurden. Ich habe bisher keine Quelle gefunden, die diese Bezeichnungen bestätigt oder widerlegt.

  • Der Monat "Quintilis" wurde nach dem Tod von Julius Cäsar umbenannt. Die neue Bezeichnung ist allerdings kein Bestandteil vom Zeitsystem "julianischer Kalender".
  • Der Monat "Sextilis" wurde nach der Schaltjahr-Korrektur, welche durch Augustus angeordnet wurde, umbenannt. Die neue Bezeichnung ist allerdings ebenfalls kein Bestandteil vom Zeitsystem "julianischer Kalender".

Jahr

1 Jahr = 12 Monate

1 Jahr ist durchschnittlich 365,25 Tage lang.

gewöhnliches Jahr bzw. Schaltjahr
in Worten
Die ursprüngliche Regel, die Julius Cäsar vorgesehen hatte, um zu bestimmen, von welcher Art ein Jahr ist, war Folgende:
Jedes 4. Jahr ist
ein Schaltjahr.
Jedes andere Jahr ist
ein gewöhnliches Jahr.

Darüber hinaus wurde das Jahr "45 vor Christus", als das neue Zeitsystem zum ersten Mal eingeführt wurde, zum Schaltjahr erklärt. Es ist allerdings umstritten, ob es das Jahr "45 vor Christus" war.

Die Regel war missverständlich formuliert und wurde falsch ausgelegt. Die Regel wurde so verstanden, dass jedes 3. Jahr und damit bereits das Jahr "42 vor Christus" ein Schaltjahr sein soll. Da Julius Cäsar allerdings bereits im Jahr "44 vor Christus" ermordet wurde, hatte er, als das Missverständnis spätestens hätte auffallen müssen, nicht mehr eingreifen können.

Später hat dann Augustus den Fehler behoben, indem er einige Jahre zu gewöhnlichen Jahren erklärt hatte, die ansonsten Schaltjahre wären.

Anschließend wurde jedes 4. Jahr zum Schaltjahr erklärt.

Beispiele: Zeitraum: zutreffende Regel:
Art: Jahr:
...
gewöhnliches Jahr 58 vor Christus
gewöhnliches Jahr 57 vor Christus
Schaltjahr 56 vor Christus
gewöhnliches Jahr 55 vor Christus
gewöhnliches Jahr 54 vor Christus
gewöhnliches Jahr 53 vor Christus
Schaltjahr 52 vor Christus
gewöhnliches Jahr 51 vor Christus
gewöhnliches Jahr 50 vor Christus
gewöhnliches Jahr 49 vor Christus
Schaltjahr 48 vor Christus
gewöhnliches Jahr 47 vor Christus
gewöhnliches Jahr 46 vor Christus
unendlich vor Christus
bis
46 vor Christus
Wenn
  • sich die Jahreszahl restlos durch 4 Teilen lässt,
dann
  • handelt es sich um ein Schaltjahr.
Ansonsten
  • handelt es sich um ein gewöhnliches Jahr.

(Diese Regelung ist meine persönliche Empfehlung, wenn das Zeitsystem für diesen Zeitraum verwendet wird.

Das Zeitsystem wurde erst im Jahr "45 vor Christus" zum ersten Mal eingeführt. Ich kenne keine Äußerung von Julius Cäsar, ob und wie das Zeitsystem für die Jahre vor seiner Einführung verwendet werden soll.)
Art: Jahr:
Schaltjahr 45 vor Christus
gewöhnliches Jahr 44 vor Christus
gewöhnliches Jahr 43 vor Christus
Schaltjahr 42 vor Christus
gewöhnliches Jahr 41 vor Christus
gewöhnliches Jahr 40 vor Christus
Schaltjahr 39 vor Christus
gewöhnliches Jahr 38 vor Christus
gewöhnliches Jahr 37 vor Christus
Schaltjahr 36 vor Christus
gewöhnliches Jahr 35 vor Christus
gewöhnliches Jahr 34 vor Christus
Schaltjahr 33 vor Christus
gewöhnliches Jahr 32 vor Christus
gewöhnliches Jahr 31 vor Christus
Schaltjahr 30 vor Christus
gewöhnliches Jahr 29 vor Christus
gewöhnliches Jahr 28 vor Christus
Schaltjahr 27 vor Christus
gewöhnliches Jahr 26 vor Christus
gewöhnliches Jahr 25 vor Christus
Schaltjahr 24 vor Christus
gewöhnliches Jahr 23 vor Christus
gewöhnliches Jahr 22 vor Christus
Schaltjahr 21 vor Christus
gewöhnliches Jahr 20 vor Christus
gewöhnliches Jahr 19 vor Christus
Schaltjahr 18 vor Christus
gewöhnliches Jahr 17 vor Christus
gewöhnliches Jahr 16 vor Christus
Schaltjahr 15 vor Christus
gewöhnliches Jahr 14 vor Christus
gewöhnliches Jahr 13 vor Christus
Schaltjahr 12 vor Christus
gewöhnliches Jahr 11 vor Christus
gewöhnliches Jahr 10 vor Christus
Schaltjahr 09 vor Christus
45 Jahre vor Christus
bis
9 Jahre vor Christus
Das Jahr "45 vor Christus" und jedes folgende 3. Jahr
  • ist ein Schaltjahr.
Alle anderen Jahre
  • sind gewöhnliche Jahre.
Art: Jahr:
gewöhnliches Jahr 08 vor Christus
gewöhnliches Jahr 07 vor Christus
gewöhnliches Jahr 06 vor Christus
gewöhnliches Jahr 05 vor Christus
gewöhnliches Jahr 04 vor Christus
gewöhnliches Jahr 03 vor Christus
gewöhnliches Jahr 02 vor Christus
gewöhnliches Jahr 01 vor Christus
gewöhnliches Jahr 01 nach Christus
gewöhnliches Jahr 02 nach Christus
gewöhnliches Jahr 03 nach Christus
gewöhnliches Jahr 04 nach Christus
8 Jahre vor Christus
bis
4 Jahre nach Christus
Alle Jahre
  • sind gewöhnliche Jahre.
Art: Jahr:
gewöhnliches Jahr 05 nach Christus
gewöhnliches Jahr 06 nach Christus
gewöhnliches Jahr 07 nach Christus
Schaltjahr 08 nach Christus
gewöhnliches Jahr 09 nach Christus
gewöhnliches Jahr 10 nach Christus
gewöhnliches Jahr 11 nach Christus
Schaltjahr 12 nach Christus
gewöhnliches Jahr 13 nach Christus
gewöhnliches Jahr 14 nach Christus
...
5 Jahre nach Christus
bis
heute
Wenn
  • sich die Jahreszahl restlos durch 4 Teilen lässt,
dann
  • handelt es sich um ein Schaltjahr.
Ansonsten
  • handelt es sich um ein gewöhnliches Jahr.

für Programmierer
# Variable "Schaltjahr" auf false oder true setzen
#     false = es handelt sich um ein gewöhnliches Jahr
#     true = es handelt sich um ein Schaltjahr

if Jahreszahl<=-46 oder Jahreszahl>=5
Schaltjahr = (Jahreszahl modulo 4)==0
elseif Jahreszahl<=-9
Schaltjahr = (Jahreszahl modulo 3)==0
else
Schaltjahr = false

signifikante Punkte

Nullpunkt

Ereignis: Zeitpunkt:
Irgendwann in diesem Jahr wurde Jesus Christus geboren. Um 0:00 Uhr vom 1. Januar im 1. Jahr nach Christus gemäß dem Zeitsystem "julianischer Kalender"

In diesem Zeitsystem gibt es kein Jahr "0".

Erst seit dem Jahr "525 nach dem Nullpunkt" gemäß dem Zeitsystem "gregorianischer Kalender" wird die Geburt von Jesus Christus als Nullpunkt verwendet. Dieser Nullpunkt wurde von dem Mönch "Dionysius Exiguus" festgelegt und war von Julius Cäsar nicht vorgesehen. Bei der Festlegung vom Nullpunkt gilt mir
  • die Uhrzeit,
  • der Tag und
  • der Monat
als ungesicherte Information. Es ist gut möglich, dass Dionysius Exiguus lediglich das Jahr vom Nullpunkt bestimmt hatte und keine Angabe über
  • die Uhrzeit,
  • den Tag und
  • den Monat
gemacht hatte. Unabhängig davon kann jedoch ohnehin nicht von der momentanen Uhrzeit auf die Uhrzeit von der Geburt zurückgeschlossen werden, da als Ereignis lediglich definiert ist, dass die Geburt irgendwann im Jahr vom Nullpunkt stattgefunden hat.

Davor
  • war es weniger üblich als heute, dass die Jahreszahl überhaupt angegeben wurde, und
  • wurde kein einheitlicher Nullpunkt verwendet.
Als Nullpunkt diente beispielsweise
  • der Amtsantritt von einem römisch Kaiser oder
  • die Gründung von der Stadt "Rom".

Referenz(en)

Ereignis: Zeitraum:
Jesus Christus wurde geboren. Irgendwann im 1. Jahr nach Christus gemäß dem Zeitsystem "julianischer Kalender".

koordinierte, universelle Zeit

abgedeckter Zeitraum

Anfang

Der abgedeckte Zeitraum beginnt um 00:00:00 Uhr am 01.01.1961
In der Zeit zwischen dem 01.01.1961 und dem 01.01.1972 wurde das Zeitsystem allerdings einige Male umdefiniert. Es wurde
  • sowohl die Definition, was eine "Sekunde" ist geändert,
  • als auch Schritte, wie bei Schaltsekunden, durchgeführt, die allerdings keiner vollen Sekunde entsprochen haben.

Aus diesem Grund wird der Anfang vom abgedeckten Zeitraum oftmals
  • als 0:00:00 Uhr vom 01.01.1972 gemäß dem Zeitsystem "koordinierte, universelle Zeit" oder
  • als 23:59:59,96 Uhr vom 31.12.1971 angesehen.

Ende

- Das Zeitsystem definiert kein Ende vom abgedeckten Zeitraum. -

Bezeichnung

Das Zeitsystem wird
  • im Englischen als "coordinated universal time" bezeichnet und
  • im Französischen als "Temps universel coordonné".

In allen Sprachen wird das Zeitsystem mit "UTC" abgekürzt.

Maße

Übersicht

Bezeichnung: Definition:
Sekunde bestimmte Anzahl an Schwingungen von einem Cäsium-Atom

Sekunde

Die Definition vom Zeitsystem "internationale Atomzeit" soll verwendet werden. Diese besagt vereinfacht ausgedrückt:
Die Dauer von 9.192.631.770 Schwingungen von einem Cäsium-Atom.

Durch diese Definition ist eine Sekunde immer gleich lang.

Durch diese Definition lässt sich allerdings mit einer Ganzzahl von Sekunden
  • weder die Dauer von einer Rotation von der Erde um ihre eigene Achse ausdrücken,
  • noch die Dauer von einem Umlauf von der Erde um die Sonne.

Die meisten Uhren werden allerdings
  • weder nach dem Einen,
  • noch nach dem Anderen
gerichtet, sondern Anhand von einer sich nicht verändernden Dauer.

Schaltsekunde
Es sollen Schaltsekunden verwendet werden.

Minute

Durch das Zeitsystem ist nicht festgelegt, was eine "Minute" ist. Dennoch wird eine Einteilung von der Zeit in Einheiten wie
  • "Sekunden",
  • "Minuten",
  • "Stunden" und
  • "Tage"
vorgeschlagen.

Um dies zu ermöglichen, werden oft die Definitionen vom Zeitsystem "ISO 8601" verwendet.

Stunde

Durch das Zeitsystem ist nicht festgelegt, was eine "Stunde" ist. Dennoch wird eine Einteilung von der Zeit in Einheiten wie
  • "Sekunden",
  • "Minuten",
  • "Stunden" und
  • "Tage"
vorgeschlagen.

Um dies zu ermöglichen, werden oft die Definitionen vom Zeitsystem "ISO 8601" verwendet.

Tag

Durch das Zeitsystem ist nicht festgelegt, was ein "Tag" ist. Dennoch wird eine Einteilung von der Zeit in Einheiten wie
  • "Sekunden",
  • "Minuten",
  • "Stunden" und
  • "Tage"
vorgeschlagen.

Um dies zu ermöglichen, werden oft die Definitionen vom Zeitsystem "ISO 8601" verwendet.

Anzahl der vergangenen Tage seit dem Nullpunkt
Wenn
  • davon ausgegangen wird, dass es in dem Zeitsystem kein Jahr "0" gibt,
dann Ansonsten
Auch wenn
  • davon ausgegangen wird, dass das Zeitsystem diesen Zeitraum nicht abdeckt,
dann
  • muss dennoch entschieden werden, ob das Jahr "0" in der Berechnung berücksichtigt werden soll.

Wochentag
Wenn
  • davon ausgegangen wird, dass es in dem Zeitsystem kein Jahr "0" gibt,
dann Ansonsten
Wenn
  • davon ausgegangen wird, dass das Zeitsystem diesen Zeitraum ohnehin nicht abdeckt,
dann

Woche

- nicht festgelegt -

Monat

Durch das Zeitsystem ist nicht festgelegt, was ein "Monat" ist. Dennoch wird eine Einteilung von der Zeit in Einheiten wie
  • "Sekunden",
  • "Minuten",
  • "Stunden" und
  • "Tage"
vorgeschlagen.

Um dies zu ermöglichen, werden oft die Definitionen vom Zeitsystem "ISO 8601" verwendet.

Jahr

Durch das Zeitsystem ist nicht festgelegt, was ein "Jahr" ist. Dennoch wird eine Einteilung von der Zeit in Einheiten wie
  • "Sekunden",
  • "Minuten",
  • "Stunden" und
  • "Tage"
vorgeschlagen.

Um dies zu ermöglichen, werden oft die Definitionen vom Zeitsystem "ISO 8601" verwendet.

signifikante Punkte

Nullpunkt

Ereignis: Zeitpunkt:
Die Definition vom Zeitsystem wurde zum letzten Mal geändert. Um 0:00:00 Uhr vom 01.01.1972 gemäß dem Zeitsystem "koordinierte, universelle Zeit".

Referenz(en)

Ereignis: Zeitpunkt/-raum:
Der Zeitpunkt "0:00:10 Uhr vom 01.01.1972" gemäß dem Zeitsystem "internationale Atomzeit" ("TAI") hat stattgefunden. Um 0:00:00 Uhr vom 01.01.1972 gemäß dem Zeitsystem "koordinierte, universelle Zeit".

Das Datum und die Uhrzeit vom Zeitsystem "koordinierte, universelle Zeit" unterscheiden sich um weniger oder gleich ±0,9 Sekunden vom Datum und der Uhrzeit Seit 0:00:00 Uhr vom 01.01.1972 gemäß dem Zeitsystem "koordinierte, universelle Zeit".

Unix-Zeitstempel

Änderungen

Das Zeitsystem Unix-Zeitstempel wurde im Lauf von der Zeit einige Male geändert:
Definition: Quelle
Autoren: Datum:
(von der Veröffentlichung)
Dokument-Titel:
Ein Unix-Zeitstempel gibt
  • die Anzahl der 1/60 Sekunden
  • seit 00:00:00 Uhr vom 1. Januar 1971
  • als "4 Byte"-großer Wert vom Variablentyp "Ganzzahl mit Vorzeichen"
an.
  • D. M. Ritchie und
  • K. Thompson
03.11.1971 UNIX PROGRAMMER'S MANUAL
  • D. M. Ritchie und
  • K. Thompson
im Namen von
  • Bell Telephone Laboratories, Incorporated
12.06.1972 UNIX PROGRAMMER'S MANUAL - Second Edition
Ein Unix-Zeitstempel gibt
  • die Anzahl der 1/60 Sekunden
  • seit 00:00:00 Uhr vom 1. Januar 1972
  • als "4 Byte"-großer Wert vom Variablentyp "Ganzzahl mit Vorzeichen"
an.
02.1973 UNIX PROGRAMMER'S MANUAL - Third Edition
Ein Unix-Zeitstempel gibt
  • die Anzahl der Sekunden
  • seit 00:00:00 Uhr vom 1. Januar 1970
    • vermutlich gemäß dem Zeitsystem "gregorianischer Kalender" und
    • gemäß der Winterzeit von der Zeitzone "Greenwich Mean Time"
  • als "4 Byte"-großer Wert vom Variablentyp "Ganzzahl mit Vorzeichen"
an.
11.1973 UNIX PROGRAMMER'S MANUAL - Fourth Edition
06.1974 UNIX PROGRAMMER'S MANUAL - Fifth Edition
06.1975 UNIX PROGRAMMER'S MANUAL - Sixth Edition
06.1979 (?) UNIX PROGRAMMER'S MANUAL - Seventh Edition

Ein Unix-Zeitstempel gibt
  • die Anzahl der Sekunden
  • seit 00:00:00 Uhr vom 1. Januar 1970
  • als "4 Byte"-großer Wert vom Variablentyp "Ganzzahl mit Vorzeichen"
an.

Beim Umrechnen oder sollen
  • keine Schaltsekunden raus- oder reingerechnet werden,
  • sondern jeder Tag soll aus 86.400 Sekunden bestehen.

Anmerkungen:
  • Die obrige Umrechnung ist ungenau und der Abstand wird mit jeder vergangenen Schaltsekunde größer.

    Die Ungenauigkeit
    • besteht in der Summe von allen eingefügten und relevanten Schaltsekunden.
    Am 22.09.2012 betrug die Ungenauigkeit somit 25 Sekunden.

    Wenn alle relevanten Schaltsekunden raus- oder reingerechnet werden, dann wird die Ungenauigkeit auf 0 Sekunden begrenzt.

    Das ungenaue aber dafür einfachere und somit hoffentlich einheitliche Verfahren wird einer uneinheitlichen Umsetzung bevorzugt.
  • Da jeder Tag aus 86.400 Sekunden bestehen soll, kann die Anweisung auch so verstanden werden, dass eine Umrechnung
    • von einer Zeitangabe gemäß dem Zeitsystem "Unix-Zeitstempel"
    • in eine Zeitangabe gemäß dem Zeitsystem "gregorianischer Kalender"
    oder
    • von einer Zeitangabe gemäß dem Zeitsystem "gregorianischer Kalender"
    • in eine Zeitangabe gemäß dem Zeitsystem "Unix-Zeitstempel"
    so durchgeführt werden soll, dass Schaltsekunden
    • weder rausgerechnet
    • noch reingerechnet
    werden.

    Da sich die Definitionen, was eine "Sekunde" ist, in den beiden Zeitsystemen unterscheiden, wird der Abstand ständig größer.

    Die Ungenauigkeit lässt sich
    • sowohl mit der Hilfe vom Integral berechnen, das sich auf die vergangene Zeit und die Abweichung durch die unterschiedlichen Sekundendefinitionen bezieht,
    • als auch durch die Summe von allen in das Zeitsystem "koordinierte, universelle Zeit" eingefügten und relevanten Schaltsekunden ±0,9 Sekunden ausdrücken.
    Am 22.09.2012 betrug die Ungenauigkeit somit 25 Sekunden ±0,9 Sekunden.

    Wenn dann
    • wird die Ungenauigkeit auf ±0,9 Sekunden begrenzt.
    Ansonsten wenn
    • das Integral
      • raus- oder
      • reingerechnet
      wird,
    dann
    • wird die Ungenauigkeit auf 0 Sekunden begrenzt.
The Open Group 2004 The Open Group Base Specifications - Issue 6
2008 The Open Group Base Specifications - Issue 7

Das Betriebssystem "Unix" verwendet die Definition, welche
  • von "Bell Telephone Laboratories, Incorporated" festgelegt wurde und
  • in der Tabelle rot hinterlegt ist.
Dieses Betriebssystem wurde allerdings zwischenzeitlich weitgehend vom Markt gedrängt.

(Alle ?) auf Unix-basierenden Betriebssystemen verwenden die Definition, welche
  • von "The Open Group" festgelegt wurde und
  • in der Tabelle gelb hinterlegt ist.
Diese Definition ist auch in diesem Dokument beschrieben.

"The Open Group" ist
  • nicht der Nachfolger von "Bell Telephone Laboratories, Incorporated",
  • sondern eine separate Gruppierung.

abgedeckter Zeitraum

Anfang

Der abgedeckte Zeitraum beginnt um 00:00:00 Uhr am 01.01.1970 gemäß dem Zeitsystem "koordinierte, universelle Zeit". Das Zeitsystem soll vor diesem Zeitpunkt als undefiniert gelten.

Ende

Der abgedeckte Zeitraum endet 2.147.483.647 Sekunden nach 0:00:00 Uhr vom 01.01.1970 gemäß dem Zeitsystem "koordinierte, universelle Zeit".

Das exakte Datum und die exakte Uhrzeit lässt sich erst dann bestimmen, wenn der Zeitpunkt erreicht wurde. Vorraussichtlich wird dies etwa um 3:13:25 Uhr am 19.01.2038 gemäß dem Zeitsystem "koordinierte, universelle Zeit" sein.

Gemäß der ungenauen Umrechnung ist dieser Zeitpunkt um 3:14:07 Uhr am 19.01.2038 gemäß dem Zeitsystem "koordinierte, universelle Zeit". (Notiz: Hä? Was? Wann denn jetzt? Um 3:13 Uhr oder um 3:14 Uhr? Da hätte glaube ich bei einer Angabe als Zeitsystem "gregorianischer Kalender" stehen sollen.)

Bezeichnung

Das Zeitsystem wird im Englischen als "Unix timestamp" bezeichnet.

Grund von der Einführung

- keine Ahnung -

Maße

Übersicht

Bezeichnung: Definition:
Sekunde bestimmte Anzahl an Schwingungen von einem Cäsium-Atom

Sekunde

Die Definition vom Zeitsystem "koordinierte, universelle Zeit" soll verwendet werden.

Siehe: hier

Schaltsekunde
Es sollen keine Schaltsekunden verwendet werden. Stattdessen werden linear die Anzahl der Sekunden seit dem Nullpunkt gezählt.

Minute

- nicht festgelegt -

Stunde

- nicht festgelegt -

Tag

- nicht festgelegt -

Woche

- nicht festgelegt -

Monat

- nicht festgelegt -

Jahr

- nicht festgelegt -

signifikante Punkte

Nullpunkt

Ereignis: Zeitpunkt:
Die "Unix-Epoche" hat begonnen. an der Sekunde "0" gemäß dem Zeitsystem "Unix-Zeitstempel"

Referenz(en)

Ereignis: Zeitpunkt/-raum:
Der Zeitpunkt 0:00:00 Uhr vom 01.01.1970 gemäß dem Zeitsystem "koordinierte, universelle Zeit" hat stattgefunden. an der Sekunde "0" gemäß dem Zeitsystem "Unix-Zeitstempel"

Windows-Zeitstempel

aktuelle Definition

Laut der Dokumentation von Microsoft gibt ein Windows-Zeitstempel
  • die Anzahl der 100 Nanosekunden
  • seit 00:00:00 Uhr vom 1. Januar 1601
  • als "8 Byte"-großer Wert vermutlich vom Variablentyp "Ganzzahl mit Vorzeichen"
an.

Anmerkungen:
  • Der Zeitpunkt wird vom Zeitsystem "koordinierte, universelle Zeit" nicht abgedeckt.

    Beim Umrechnen oder rechnet die Windows-API
    • keine Schaltsekunden raus oder rein,
    • sondern geht davon aus, dass jeder Tag aus 86.400 Sekunden besteht.

    In einem älteren Dokument von Microsoft wird mit keinem Wort auf das Zeitsystem "koordinierte, universelle Zeit" Bezug genommen. Microsoft scheint unter diesem Zeitsystem vielmehr die Winterzeit von der Zeitzone "Greenwich Mean Time" zu verstehen.
  • Die obrige Umrechnung ist ungenau und der Abstand wird mit jeder vergangenen Schaltsekunde größer.

    Die Ungenauigkeit
    • besteht in der Summe von allen eingefügten und relevanten Schaltsekunden.
    Am 22.09.2012 betrug die Ungenauigkeit somit 25 Sekunden.

    Wenn alle relevanten Schaltsekunden raus- oder reingerechnet werden, dann wird die Ungenauigkeit auf 0 Sekunden begrenzt.

    Das ungenaue aber dafür einfachere Verfahren ist, soviel ich weis, von Microsoft nicht dokumentiert und könnte somit in der Zukunft ohne Notiz ersetzt werden. Es ist allerdings wahrscheinlicher, dass Microsoft bei diesem Verfahren bleibt.
  • Da jeder Tag aus 86.400 Sekunden bestehen soll, kann eine Umrechnung
    • von einer Zeitangabe gemäß dem Zeitsystem "Windows-Zeitstempel"
    • in eine Zeitangabe gemäß dem Zeitsystem "gregorianischer Kalender"
    oder
    • von einer Zeitangabe gemäß dem Zeitsystem "gregorianischer Kalender"
    • in eine Zeitangabe gemäß dem Zeitsystem "Windows-Zeitstempel"
    so durchgeführt werden soll, dass Schaltsekunden
    • weder rausgerechnet
    • noch reingerechnet
    werden.

    Da sich die Definitionen, was eine "Sekunde" ist, in den beiden Zeitsystemen unterscheiden, wird der Abstand ständig größer.

    Die Ungenauigkeit lässt sich
    • sowohl mit der Hilfe vom Integral berechnen, das sich auf die vergangene Zeit und die Abweichung durch die unterschiedlichen Sekundendefinitionen bezieht,
    • als auch durch die Summe von allen in das Zeitsystem "koordinierte, universelle Zeit" eingefügten und relevanten Schaltsekunden ±0,9 Sekunden ausdrücken.
    Am 22.09.2012 betrug die Ungenauigkeit somit 25 Sekunden ±0,9 Sekunden.

    Wenn dann
    • wird die Ungenauigkeit auf ±0,9 Sekunden begrenzt.
    Ansonsten wenn
    • das Integral
      • raus- oder
      • reingerechnet
      wird,
    dann
    • wird die Ungenauigkeit auf 0 Sekunden begrenzt.

abgedeckter Zeitraum

Anfang

Da mir keine klare Angabe darüber bekannt ist, ob der Wert als ein Wert
  • vom Variablentyp "Ganzzahl mit Vorzeichen" oder
  • vom Variablentyp "Ganzzahl ohne Vorzeichen"
gespeichert werden soll, ist mir auch
  • der Anfang und
  • das Ende
vom abgedeckten Zeitraum nicht klar bekannt. Die meisten Funktionen von der Windows-API sind so dokumentiert, dass davon auszugehen ist, dass es sich um einen Wert vom Variablentyp "Ganzzahl mit Vorzeichen" handelt, welcher allerdings
  • "0" oder
  • positiv
sein muss.

Der abgedeckte Zeitraum beginnt somit um 00:00:00 Uhr am 01.01.1601 gemäß dem Zeitsystem "koordinierte, universelle Zeit".

Ende

Wenn
  • der Wert als ein Wert vom Variablentyp "Ganzzahl mit Vorzeichen" gespeichert wird,
dann

Bezeichnung

Das Zeitsystem wird im Englischen als "filetime" bezeichnet.

Grund von der Einführung

- keine Ahnung -

Maße

Übersicht

Bezeichnung: Definition:
Sekunde bestimmte Anzahl an Schwingungen von einem Cäsium-Atom

Sekunde

Die Definition vom Zeitsystem "koordinierte, universelle Zeit" soll verwendet werden.

Siehe: hier

Schaltsekunde
Es werden keine Schaltsekunden verwendet. Stattdessen werden linear die Anzahl der 100 Nanosekunden seit dem Nullpunkt gezählt.

Minute

- nicht festgelegt -

Stunde

- nicht festgelegt -

Tag

- nicht festgelegt -

Woche

- nicht festgelegt -

Monat

- nicht festgelegt -

Jahr

- nicht festgelegt -

signifikante Punkte

Nullpunkt

Ereignis: Zeitpunkt:
- Zu diesem Zeitpunkt hat kein Ereignis stattgefunden, auf welches bezug genommen wird. - an der Sekunde "0" gemäß dem Zeitsystem "Windows-Zeitstempel"

Referenz(en)

Ereignis: Zeitpunkt/-raum:
Der Zeitpunkt 0:00:00 Uhr vom 01.01.1601 gemäß dem Zeitsystem "koordinierte, universelle Zeit" hat stattgefunden.

Anmerkung:
an der Sekunde "0" gemäß dem Zeitsystem "Windows-Zeitstempel"


weiteres Material zu diesem Thema

Bibliotheken

Name Beschreibung: Weblink:
vom Autor: von der Bibliothek:
conversion/time Dies ist eine allgemeinfreie und kostenlose Bibliothek.

Mit ihrer Hilfe
  • und
    • anhand von einer bestehenden Zeitangabe, welche gemäß einem bestimmten Zeitsystem zu interpretieren ist,
    kann
    • eine neue Zeitangabe erzeugt werden, welche gemäß einem anderen Zeitsystem zu interpretieren ist.
  • können Standort-abhängige Einflüsse, zum Beispiel durch die Sommerzeit,
    • raus- oder
    • reingerechnet
    werden.
OnTheServer.de/Downloads/

Dokumente

Name vom Sprache: Umfang vom Inhalt: Weblink:
Autor: Dokument:
Betriebssystem-spezifische - Linux - Funktionen vom Betriebssystem deutsch
  • beschreibt Funktionen vom Kernel von Linux
  • zeigt, wie Funktionen vom Kernel von Linux benutzt werden können
OnTheServer.de/Downloads/
Betriebssystem-spezifische - Windows - Funktionen vom Betriebssystem
  • nennt Bibliotheken von Windows
  • beschreibt Funktionen von den Bibliotheken
  • zeigt, wie Datensätze und Funktionen von den Bibliotheken benutzt werden können
Zeit - Standort-abhängige Einflüsse auf Zeitangaben
  • beschreibt die Begriffe
    • "globale Zeit" und "lokale Zeit",
    • "Sommer-" und "Winterzeit" und
    • "Zeitzonen"
Herbert Straub Gregorianischer und Julianischer Kalender
  • enthält Hintergrundinformationen über die Schaltjahre und die Sonderregelungen vom Zeitsystem "julianischer Kalender", welche kurz nach der Einführung gegolten haben
  • nennt einige Formeln für verschiedene Berechnungen
  • enthält ein paar Fehler
straub.as/java/basic/kalender.html
Holger Örtel Gregorianischer Kalender
  • enthält Hintergrundinformationen über die Einführung vom Zeitsystem "gregorianischer Kalender" und die Versuche in den vorherigen Jahren ein neues Zeitsystem einzuführen
  • listet die Einführdatume vom Zeitsystem "gregorianischer Kalender" in verschiedenen Ländern auf
Ortelius.de/kalender/greg_de.php
Julianischer Kalender Ortelius.de/kalender/jul_de.php
International Earth Rotation Service bulletin C englisch hpiers.obspm.fr/eop-pc/
index.php?index=bulletins
bulletin D
Coordinated Universal Time (UTC) iers.org/nn_10398/IERS/EN/
Science/EarthRotation/UTC.html
International Organization for Standardization Data elements and interchange formats - Information interchange - Representation of dates and times

Referenznummer: "ISO 8601"
  • beschreibt das Zeitsystem von der Norm "ISO 8601"
  • enthält von vielen Unterthemen eine oberflächliche Beschreibung
International Telecommunication Union Standard-frequency and time-signal emissions

Dokument-Identifikationskennung: "ITU-R TF.460-6"
itu.int/rec/R-REC-TF.460/en.htm

Aufnahme von weiteren Materialien

Wenn dann
Sie dürfen durchaus auch Ihre eigenen Materialien zuschicken.

Bei den zugesendeten Materialien werde ich beurteilen, ob sie sich für die Auflistung eignen. Manche Materialien werden nicht aufgenommen, weil beispielsweise ein Hinweis enthalten ist, dass Es besteht kein Anspruch darauf, dass zugesendete Materialien aufgenommen werden.

Link zum Kapitel "wie man den Verfasser kontaktiert".