Wikipedia:Lua/Modul/Time/de

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Vorlagenprogrammierung Diskussionen Lua Unterseiten
Modul Deutsch English

Modul: Dokumentation

Modul zur Verarbeitung von Wikidata-Zeitinformationen

[Quelltext bearbeiten]

Dieses Modul wird mit

local success, t = pcall(require, "Modul:Time")
local constant = t.constant
local pointOfTime = t.point

eingebunden. Es arbeitet mit Zeit-Objekten. Diese können z. B. mit

    local someDate = '1.1.2000'
    local someDate = '2000-02-03'
    local someDate = '+2000-04-05T06:07:08Z'
    local someDate = {
        year = 1234
        month = 5
        day = 6
        precision = 10 -- month
    }
    local t = pointOfTime:new(someDate)
    local now = pointOfTime:new()

erzeugt werden. Für Zeiten aus Wikidata ist das Modul:Wikidata/Time zu verwenden. Das Zeitobjekt, das damit erzeugt wird, erbt z. B. alle Vergleichsoperatoren, hat aber eigene Methoden zur Selektion und Verarbeitung von Wikidata-Daten.

Konstanten werden vermutlich nur innerhalb des Moduls verwendet, stehen jedoch auch außerhalb zur Verfügung:

  • PRECISIONLEVEL ist eine Tabelle mit Bezeichnern für Genauigkeitsangaben. Die Bezeichner für Präzisionsebenen über 8 bezeichnen die Felder der Zeit-Objekte: year, month, day, hour, min und sec
  • DEFAULTFORMAT ist eine Tabelle, die den Präzisionsebenen von 6 bis 14 je einen format-string zuordnet, der zur Darstellung eines Zeit-Objektes genutzt wird, wenn dafür kein anderer format-string angegeben wird. Zeit-Objekte mit noch geringerer Präzision werden nicht mit default format dargestellt.

Jedes Zeitobjekt kennt folgende Felder, von denen jedoch keines im Objekt enthalten sein muss:

Und basierend auf diesen Vergleichsmethoden auch alle Vergleichsoperatoren (>, <, >=, <=, ==, ~=)

pointOfTime:format(fmtStr)

[Quelltext bearbeiten]

Darstellung eines Zeit-Objektes als Zeichenkette

Parameter
fmtStr eingeschränkter format-string, bei dem folgende Schlüssel ersetzt werden:
entweder
  • %y oder %Y für Jahr
  • %m für Monat
  • %d für Tag des Monats
  • %H für Stunde im 24-Stunden-Modell
  • %M für Minute
  • %S für Sekunde

oder

  • yy, yyyy, jj oder jjjj für Jahr (yy, oder jj: Darstellung maximal zweistellig)
  • m oder mm für Monat (mm: Darstellung genau zweistellig)
  • d, dd, t oder tt für Tag (dd, oder tt: Darstellung genau zweistellig)
  • H oder HH für Stunde (HH: Darstellung genau zweistellig)
  • M für Minute (MM: Darstellung genau zweistellig)
  • S für Sekunde (SS: Darstellung genau zweistellig)
  • e=(<Wert>) für einen Wert, der dargestellt wird, wenn die Ära '-' ist (v. Chr.).
  • E=(<Wert>) für einen Wert, der dargestellt wird, wenn die Ära '+' ist (n. Chr.).
Rückgabewert: Zeitangabe als Zeichenkette

pointOfTime:isLessthan(time)

[Quelltext bearbeiten]

Vergleich zweier Zeit-Objekte; Entspricht auch dem Aufruf Time.isLessthan(<Zeit-Objekt>, <Zeit-Objekt>)

Rückgabewert: einer der folgenden Werte
true
wenn auf niedrigster gemeinsamer Präzisionsebene dieses Zeit-Objekt eine Zeit vor der des Vergleichs-Objekts repräsentiert
false
wenn der Vergleich fehl schlägt, oder wenn dieses Zeit-Objekt eine spätere, oder gleiche Zeit repräsentiert, als das Vergleichsobjekt

pointOfTime:equals(time)

[Quelltext bearbeiten]

Vergleich zweier Zeit-Objekte; Entspricht auch dem Aufruf Time.equals(<Zeit-Objekt>, <Zeit-Objekt>)

Rückgabewert: einer der folgenden Werte
true
  • wenn beide Objekte auf niedrigster gemeinsamer Präzisionsebene die gleiche Zeit repräsentieren
  • wenn beiden Objekten dieselben Zeiteigenschaftswerte fehlen
  • wenn es sich bei beiden nicht um Objekte, sondern um einfache Datentypen handelt
false
  • wenn die beiden Objekte auf niedrigster gemeinsamer Präzisionsebene die unterschiedliche Zeiten repräsentieren
  • wenn ein relevanter Zeiteigenschaftswert nur einem Objekt fehlt
  • wenn es sich bei nur einem um einen einfachen Datentyp handelt, selbst, wenn das Vergleichsobjekt ebenfalls keine Zeitinformationen enthält