Pen & Paper - Rollenspiel > Werkstatt
Covella - Fantasy-Kalender - DSL für beliebige Systeme von Zeitmessung
1of3:
OK. Fallen euch im Falle von nicht uniformen Einheiten Varianten ein, außer vom Übergang von einer kürzeren zu einer längeren Variante ggf. das letzte Datum auszugeben?
Talwyn:
Für den Fall des Monats:
--- Code: ---var d = Date(2016, 10, 31)
d advanceBy (1, MONTH)
println(d.format) // 30.11.2016
--- Ende Code ---
Für den Fall des Jahres
--- Code: ---var d = Date(2016, 2, 29)
d.advanceBy (1, YEAR)
println(d.format) // 28.02.2017
--- Ende Code ---
Erscheint mir halbwegs intuitiv und leicht zu verstehen.
1of3:
Jo. Das ändert ein bisschen den Vorgang. Mit diesen Eigenschaften sind unsere Einheiten nicht mehr rein kompositionell. Es reicht nicht mehr zu wissen, welche Einheit in welcher anderen Einheit wie oft enthalten ist. Das Modell braucht Informationen über die einzelne Einheit.
Wenn wir das sowieso tun müssen, können wir uns die Umwandlung von den Builder-Objekten in den Kalender vereinfachen.
Ich schlage also vor: Wir machen eine Klasse TimeUnit (o.ä.) an der man all diese Dinge einstellen kann. Standardmäßig bieten wir Kandidaten wie Month, Week, Year, Hour, Minute, Second, Day an. Dann können User die entweder so benutzen, sie modifizieren ("Meine Monate sind alle gleich lang!") oder ganz neue bauen.
Das erspart uns beim parsen herauszufinden, was für eine Einheit das ist.
Talwyn:
Klingt gut. Habe nur leider momentan wenig Zeit für das Projekt, da ich aus so einer Laune heraus einen Fernkurs zum Thema Machine Learning belegt habe und nun feststellen muss, dass das einen Sack voll Arbeit bedeutet.
1of3:
Frage an den Kundenkreis.
Wenn ich sagen möchte: Monat 5.
Welchen Operator, welches Zeichen, welches Wort würdet ihr dazwischen erwarten. Doppelpunkt scheidet aus. Also: "monat: 5" geht nicht als Eingabe. Was kann ich stattdessen nehmen, was einigermaßen einleuchtend scheint?
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln