Wikipedia:Lua/Modul/Time/de
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
[Quelltext bearbeiten]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.
Felder
[Quelltext bearbeiten]Jedes Zeitobjekt kennt folgende Felder, von denen jedoch keines im Objekt enthalten sein muss:
- era (Ära: '+' = n. Chr., '-' = v. Chr.)
- year (Jahr)
- month (Monat)
- day (Tag)
- hour (Stunde, 24-Stunden-Modell)
- min (Minute)
- sec (Sekunde)
- precision (Präzisionsebene: 0-14, siehe d:Help:Dates/de#Präzision)
- calendarmodel (URI, z.B. der Standard für Zeitwerte nach 1582: „http://www.wikidata.org/entity/Q1985727“ für gregorianische, oder vor 1582: „http://www.wikidata.org/entity/Q1985786“ für julianische Kalendertaten - vgl.: julianischer Kalender (Q11184), gregorianischer Kalender (Q12138), Proleptischer Gregorianischer Kalender (Q1985727), bzw. proleptischer Julianischer Kalender (Q1985786))
- timezone (Zeitzone; ACHTUNG: Dieses Modul arbeitet derzeit noch ohne Berücksichtigung der Zeitzone. Dieser Fehler bleibt zunächst bis auf weiteres bestehen, wird möglicherweise in Zukunft aber unter Berücksichtigung weiterer Randbedingungen behoben werden.)
Methoden
[Quelltext bearbeiten]- pointOfTime:format(fmtStr) Darstellung eines Zeit-Objektes als Zeichenkette
- pointOfTime:qualified(statement) statement und Status zur Qualifikation desselben
- pointOfTime:isLessthan(time) Vergleichsmethode
- TipointOfTimeme:equals(time) Vergleichsmethode
- pointOfTime:getFiltered(statements) aus einer statement-Liste jene herausfiltern, die nicht Zeit-disqualifiziert sind
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
oder
| |
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
|
| |
false
|
|