Pen & Paper - Rollenspiel > Werkstatt
Covella - Fantasy-Kalender - DSL für beliebige Systeme von Zeitmessung
Talwyn:
Ich habe vor einen Java Wrapper für die Bibliothek zu bauen sobald sie mal steht. Weil, was 1of3 sagt gibt auch noch ein paar Sprachkonstrukte, die Java nicht so ohne weiteres beherrscht.
Gesendet von meinem Nexus 5 mit Tapatalk
Skeeve:
--- Zitat von: Pyromancer am 11.10.2016 | 15:53 ---Hm, ich hätte das Ganze von der astronomischen Seite aufgezogen. Solare und lunare Zyklen (vielleicht mit mehreren Monden), Jahreszeiten, Feiertage, Sonnwenden und Tagundnachtgleichen, Aussaat und Ernte, wiederkehrende Wetterphänomene, darum geht es doch eigentlich, nicht darum, Tage runterzuzählen.
--- Ende Zitat ---
Ungefähr das (lunare und solare Zyklen) wollte ich ungefähr zur gleichen Zeit auch schreiben. Wobei dies
--- Zitat von: Talwyn am 6.10.2016 | 21:51 ---Was ich mit Herausforderung bei den Kalendern meinte ist: Es sollte für Nicht-Programmierer möglich sein, auf relativ einfache Weise den Kalender ihrer Spielwelt so zu beschreiben, dass die App damit arbeiten kann.
--- Ende Zitat ---
das ganze vermutlich etwas komplizieren könnte...
Boba Fett:
Wenn ihr beim Programmieren eine Übung braucht, dann realisiert doch mal folgenden Kalender:
Wir nehmen die Erde als Umlaufzeit zum Vorbild, also 365 TAge im Jahr. Jedes 4. Jahr ein Schalttag, ausser in den Hunderten, wobei die "außer" Regel in den Tauserndern doch wieder eine Ausnahme bildet - die Tausender haben ein Schaltjahr.
Soweit so gut, das ist unsere Welt (derzeit).
Das Kalenderjahr beginnt bei der Tag-Nachtgleiche im Frühling der Nordheminsphäre.
Jeder Monat hat exakt 30 Tage.
Jede Woche hat 6 Tage, also hat Jeder Monat 5 Wochen.
(Die 12 x 30 Tage machen also schon mal 360 Tage im Jahr aus. Fehlen noch 5 ...)
Vor jedem Quartal (3 Monate) wird ein außerhalb der Monate und Wochentage liegender Tag an den Tagen der Tag/Nacht-gleiche, zu Midsommer und Midwinter zusätzlich eingeschoben.
Der Jahreswechsel bekommt einen weiteren extra Tag als allerletzter Tag im Jahr.
Der Schalttag wird zwischen dem letzten Tag und dem Quartalsbeginntag eingeschoben.
1of3:
@Boba: Meinst du so?
--- Code: ---val month = (Days(6) as "week") *5 as "month"
val quartal= Days(1) as "extra day" + month *3
val standardYear = quartal *4 as "year"
val leapYear = (quartal * 4 + Days(1) as "leap day" ) as "year"
val fourYearCycle = standardYear * 3 + leapYear
val century = fourYearCycle * 24 + standardYear * 4
val millenium = century * 9 + fourYearCycle * 25
val meinKalender = Calendar ( millenium )
--- Ende Code ---
Skeeve:
Ich glaube bei
--- Zitat von: 1of3 am 15.10.2016 | 19:09 ---
--- Code: ---val standardYear = quartal *4 as "year"
val leapYear = (quartal * 4 + Days(1) as "leap day" ) as "year"
--- Ende Code ---
--- Ende Zitat ---
fehlt noch der Jahreswechsel. Also vielleicht so:
--- Code: ---val standardYear = quartal *4 as "year" + Days(1) as "turnOfTheYear"
val leapYear = (quartal * 4 + Days(1) as "leap day" ) as "year" + Days(1) as "turnOfTheYear"
--- Ende Code ---
Wobei ich keinen Plan habe ob das die korrekte Syntax ist. Dazu habe ich viel zu wenig Ahnung von Scala und Java.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln