Entwickler-Ecke

Open Source Projekte - Maya-Kalenderrunde


Mathematiker - Mo 03.09.12 21:20
Titel: Maya-Kalenderrunde
Hallo,
bevor in den nächsten Monaten in den Boulevard-Medien die "Angst vor dem Weltuntergang" heraufbeschworen wird, habe ich schon jetzt etwas beizutragen.
Wie ja jeder weiß, geht am 21.Dezember 2012 die Welt unter! :wink:
Zumindest glauben das einige Esoteriker, Spinner und ähnliche Zeitgenossen. Denn da endet(!) ja der Maya-Kalender.

Eigentlich endet nicht der Kalender, sondern er beginnt einen neuen Zyklus der langen Kalenderzählung, den 13.Baktun; ist aber für Medienleute wohl zu kompliziert. Um die Bevölkerung von den wirklich wichtigen Problemen abzulenken und Angst zu schüren, eignet sich der Maya-Kalender allemal. :zwinker:
Warum zu Beginn des 12.Baktuns (18.9.1618) nichts Schlimmes geschah, bleibt wohl das Geheimnis der Weltuntergangspropheten.

Der Maya-Kalender kennt, außer der langen Zählung, zwei verschiedene Daten: das Haab-Datum und das Tzolkin-Datum.
Beide Datumszählungen haben eine unterschiedliche Länge (365 und 260 Tage) und können in der sogenannten Kalenderrunde dargestellt werden. Das Tzolkin-Datum setzt sich aus 20 Monaten mit 13 Tagen, das Haab-Datum aus 18 Monaten mit je 20 Tagen und zusätzlich 5 Schalttagen zusammen. Nach 18980 Tagen wiederholen sich beide Zyklen identisch.

Für die Kalenderrunde werden 3 Zahnräder betrachtet. Links laufen Tage und Monate des Tzolkin-Datums, rechts ein Rad des Haab-Datums.
Das beigefügte Programm stellt diese 3 Räder dar. Das Datum kann eingegeben werden. Die Simulation bewegt die Räder.

Programmtechnisch interessant war für mich die Darstellung der Zahnräder aber auch die Synchronisierung beider Kalender mit unserem. Sollte sich der Quelltext nicht compilieren lassen, bitte ich mir mitzuteilen, welche Unit der Delphi VCL Extensions (RX) fehlt. Ich hoffe, dass ich alle benötigten beigefügt habe. Ich brauche diese auch nur, um die GIFs aus der Ressource zu lesen. Vielleicht gibt es eine bessere Variante.
Übrigens: In beiden Kalenderzählungen ist der 21.Dezember 2012 nichts Besonderes.

Beste Grüße
Mathematiker

Rev: Das Programm zeigt jetzt auch die lange Kalenderzählung an, auch in Maya-Zeichen. dfm-Datei im binary-Format.
Rev 2: Die zusätzliche Schriftartdatei ist jetzt als Resource integriert.
Rev 3: Der Font wird direkt mit AddFontMemResourceEx installiert. Keine temporäre Datei mehr.
Rev 4: Gifs durch Bitmaps ersetzt.
Rev 5: Jetzt mit "Weltuntergangscountdown"! :lol:
Rev 6: Fehlerhafte Tagesangaben, wie 29.2.2013 oder Jahr < 1, werden abgefangen.
Rev 7: Der "Weltuntergang" ist abgesagt! Wir warten nun bis zum 27.3.2407.


Bergmann89 - Mo 03.09.12 21:36

Hey,

tolles Prgramm. Die Animation find auch auch gut gelungen. Du hast sowieso in letzter Zeit relativ viele coole Ideen für Programme ^^
Eine Frage hab ich noch: Wenn am 21.12.2012 die Welt unter geht, warum steht der Maya Kalender dann auf "Tzolkin 4 Ahau; Haab 3 Kankin"? Müsste er dann nich wieder bei 0, also bei "Tzolkin 1 Caban; Haab 0 Kankin" stehen? Kenn mich mit dem Mayakalender nicht wirklich aus, aber das ist mir grad aufgefallen.

€: Grad ma bei Wiki geguckt. Das neue Jahr im Haab fängt mit dem Monat "Pop" an, das haut ja dann gar nich mehr hin?! So ganz blick ich noch nich durch.

MfG Bergmann.


Mathematiker - Mo 03.09.12 21:46

Hallo Bergmann89,
user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
Hey,
Eine Frage hab ich noch: Wenn am 21.12.2012 die Welt unter geht, warum steht der Maya Kalender dann auf "Tzolkin 4 Ahau; Haab 3 Kankin"? Müsste er dann nich wieder bei 0, also bei "Tzolkin 1 Caban; Haab 0 Kankin" stehen?

Die Maya kannten außer den zwei Kalendern einen weiteren, den der sogenannten langen Zählung.
In diesem zählten die Maya Jahre beginnend am (wahrscheinlich) 6.9.3114 v.u.Z. in Einheiten von 'Kin' (1 Tag), 'Uinal' (20 Tage), 'Tun' (360 Tage = 18 Uinal), 'Katun' (7200 Tage = 20 Tun) und 'Baktun' (144000 Tage = 20 Katun).
In diesem Kalender ist der 22.Dezember 2012 der 13.Baktun 0.Katun 0.Tun 0.Uinal und 1.Kin. Und nur bei dieser Zählung kommen ein paar Nullen heraus.

Gerade habe ich noch eine alte verschüttete gifimage.pas gefunden. Die funktioniert bei mir auch. Aus diesem Grund hänge ich zusätzlich noch einmal eine Variante mit dieser Unit statt der RX-Units an.

Beste Grüße
Mathematiker

Anmerkung: Die Exe im ersten Eintrag ist die aktuelle mit einer kleinen Ergänzung.


Bergmann89 - Mo 03.09.12 21:51

Hey,

also gibt es sozusagen 3 Zählungen? Wäre super, wenn du die 3. auch noch irgendwie in dein Programm einbauen könntest. Was auch noch ganz nütlich wäre ist, wenn ich die Daten in allen 4 Zeitrechnungen (3x Maya, 1x unsere) angeben kann, und das Programm dann die jeweiligen anderen Daten berechnet.

MfG Bergmann.


Mathematiker - Mo 03.09.12 22:02

user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
Wäre super, wenn du die 3. auch noch irgendwie in dein Programm einbauen könntest.

Dein Wunsch wird sofort erfüllt. In der maya2.zip (Rev 1) findest Du jetzt auch zusätzlich das Datum der langen Zählung.
Wundere Dich nicht, dass der 21.Dezember 2012 mit 0.Kin angegeben wird, die Maya kannten ja schon die Null und zählten auch gern ab Null. Deshalb ist der "Weltuntergang" ja auch schon am 21.12. :wink:
Beste Grüße
Mathematiker


Tranx - Di 04.09.12 07:46

Da sieht man mal wieder, was herauskommt, wenn verkürzte Sichtweisen sich um eine Errungenschaft der Menschheit drehen. Zu dem Zeitpunkt, an dem die Maya ihren Kalender perfektionierten, war in Europa das totale Kalenderchaos. Nur weil der Maya-Kalender etwas langfristiger angelegt ist, wird gleich spekuliert, dass da irgendwas passieren muss (vorzüglich Weltuntergänge, die machen sich so schön in Aufreißern und Filmen). Welch ein Blödsinn. Was war im Jahr 2000 oder gar 1000 alles befürchtet worden?

Dabei ist doch ein Kalender nur eine Definitionssache. Startdatum ist doch fast beliebig. Also ist doch eigentlich jeder Tag gleich. Denn wenn ich das Startdatum verschiebe, verschieben sich ja auch die Tagesbezeichnungen bzw. Datumsangaben. Sicher - jeder Kalender hat irgendein Fixdatum. Sei es die Sonnenwenden, der Siriusdurchgang oder möglicherweise ebenfalls eine spezuielle Sternen/Planeten-Konstellation bei den Maya. Aber mehr ist das Ganze eben doch nicht, als die Abbildung der Realität. Nur faszinierend ist der Maya-Kalender auf jeden Fall.

Interessantes Detail: Das (tropische) Jahr ist etwa 365,242190 Tage lang. Das sind in etwa 31/128 Tage mehr als 365 Tage. Das hieße, in 128 Jahren müssten 31 Schalttage eingeführt werden, und der Fehler wäre dann 0,2421875-0,24219 = -0,0000025 Tag = -0,216 Sekunden. Man bräuchte eigentlich nur jede 128 Jahre den Schalttag ausfallen lassen und man hätte diese Genauigkeit. (Statt der 100er Regel bei ungeraden Hundertern). Allerdings wird perspektivisch die Tageslänge etwas zunehmen udn damit die Anzahl der Tage pro Jahr abnehmen, da der Mond die Rotation der Erde verlangsamt. Dann wird sicher diese Rechnung noch genauer.


Mathematiker - Di 04.09.12 14:33

Hallo Tranx,
Die Maya entwickelten ihren hochwertigen Kalender als in Europa noch das tiefste Mittelalter herrschte, wie Du schon gesagt hast.
Verblüffend ist aber auch, dass dieser Kalender mit 365,242000 Tagen Länge nur 198 Millionstel Tage = 17,1 s vom tropischen Jahr abweicht. Unser gregorianischer Kalender hat eine mittlere Länge von 365,2425 Tagen und ist damit wesentlich ungenauer; Abweichung 26,7 s je Jahr!
Nur die anderen heute noch gängigen Kalendersysteme (iranisch = 365,2424242 d; griechisch = 365,242222 d) sind genauer als das Maya-System. Islamischer und jüdischer Kalender sind Mondkalender und damit nicht vergleichbar.

Die Wenigstens werden wissen, dass der griechische Kalender von unserem abweicht.
Schaltjahre der vollen Jahrhunderte sind im griechischen Kalender nicht die, die sich durch 4 teilen lassen, sondern die durch 9 geteilt den Rest 2 oder 6 ergeben. D.h. die Jahre 2000, 2400, 2900 usw. Damit weicht der Kalender erstmals im Jahr 2800 um einen Tag vom Gregorianischen Kalender ab.
Mit 2,748 Sekunden Abweichung je Jahr ist er der genaueste Kalender! Von den Griechen können wir immer wieder lernen! :zustimm:
Und wenn wir das aus diversen Gründen nicht wollen :wink: , dann wenigstens von den Maya.

Beste Grüße
Mathematiker


Tranx - Di 04.09.12 15:00

Ich denke, dass die Entwicklung des Maya-Kalenders schon zur Zeit des Ende des weströmischen Reiches war. Da war bei uns noch total das Chaos. Gefunden habe ich bei Wikipedia, dass für das Jahr 900 ein Kalender existierte. Doch ich denke, die Entwicklung war schon weit früher. Wir müssen uns immer bewusst werden, dass andere Kulturen uns in vieler Hinsicht lange weit voraus waren. Wenn wir das wissen und danach handeln, werden wir sicher andere Kulturen anders bewerten.


Mathematiker - Mi 05.09.12 23:27

Hallo Tranx,
user profile iconTranx hat folgendes geschrieben Zum zitierten Posting springen:
Ich denke, dass die Entwicklung des Maya-Kalenders schon zur Zeit des Ende des weströmischen Reiches war. Da war bei uns noch total das Chaos.

Du wirst recht haben, so genau kenne ich mich nicht aus.
Unglaublich ist auch, dass die Maya für das synodische Venusjahr 584 Tage angaben. Der korrekte Wert ist 583,95 Tage.
Diese Genauigkeit wurden ohne optische Instrumente, die Maya kannten kein Glas, und ohne Sand- bzw. Wasseruhren ermittelt.
Das wird auch ein Grund sein, warum Europäer bei den Maya irgendetwas Mystisches hineindeuten, da wir einfach nicht verstehen können oder wollen(!), dass auch andere Völker Höchstleistungen vollbracht haben.

Das Programm im ersten Eintrag habe ich noch um eine Kleinigkeit erweitert. Es zeigt jetzt auch das Datum der langen Zählung in Maya-Zeichen an.

Beste Grüße
Mathematiker


Mathematiker - Sa 22.09.12 19:49

Hallo,
die Maya-Kalenderrunde funktionierte bisher nur, wenn sich im Ordner der Exe auch eine zusätzliche, notwendige Schriftartdatei befand.
Ich habe nun versucht, diese als Ressource in die Exe einzufügen. Die Strategie ist dabei, wenn notwendig, die Font-Datei aus der Ressource zu lesen und als Datei in den individuellen Nutzerordner zu kopieren und anschließend zu installieren.
Am Programmende wird die Schrift deinstalliert und die Datei wieder gelöscht. Auf meinen zwei Rechnern (Vista und 7) funktioniert es bisher einwandfrei.

Es wäre nett, wenn jemand von Euch prüfen könnte, ob es vielleicht doch Probleme gibt (Rev 2 im ersten Eintrag). Prinzipiell müsste die Exe jetzt direkt aus der Zip-Datei heraus startbar sein.
Ist dieses Vorgehen mit temporären Schriftarten korrekt, würde es mir die Möglichkeit geben, auch in anderen Projekten auf die zusätzlichen Dateien zu verzichten.
Vielen Dank für Eure Hilfe.

Beste Grüße
Mathematiker


Horst_H - So 23.09.12 12:02

Hallo,

wäre nicht dies:
Selbstlöschende temporäre Datei erstellen [http://www.entwickler-ecke.de/topic_eine+selbstloeschende+temporaere+Datei+erstellen_89603.html] von user profile iconjaenicke
das optimale für Dein Vorhaben: keine Rechteprobleme, keine Dateileichen.

Gruß Horst


Mathematiker - So 23.09.12 12:43

Hallo Horst_H,
user profile iconHorst_H hat folgendes geschrieben Zum zitierten Posting springen:
... Selbstlöschende temporäre Datei erstellen[/url] von user profile iconjaenicke
das optimale für Dein Vorhaben: keine Rechteprobleme, keine Dateileichen.

Rechteprobleme dürfte es nicht geben, da man auf das temporäre Nutzerverzeichnis ja Schreib- und Leserechte hat.
Das Problem mit der Dateileiche nach einem evtl. Absturz habe ich leider. Nur kann ich die Datei erst bei Programmende löschen, da ja die Schriftart benötigt wird. Wird das Programm korrekt beendet, so ist alles in Ordnung: die Schriftart wird wieder entfernt und die temporäre Datei gelöscht; zumindest auf meinem PC.

Auf jeden Fall werde ich mir Jaenickes Lösung genau ansehen. Vielen Dank für Deinen Hinweis.

Beste Grüße
Mathematiker


Martok - So 23.09.12 17:19

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Auf jeden Fall werde ich mir Jaenickes Lösung genau ansehen. Vielen Dank für Deinen Hinweis.
Oder, wenn du das nur für den Font brauchst, kannst du einfach die dazu gedachte Funktion verwenden ;)

AddFontMemResourceEx [http://msdn.microsoft.com/de-de/library/dd183325.aspx], Beispiel:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var
  ms: TMemoryStream;
  cn: dword;
begin
  ms:= TMemoryStream.Create;
  try
    ms.CopyFrom(MyResourceStream, 0);
    AddFontMemResourceEx(ms.Memory, ms.Size, nil, @cn);
  finally
    ms.Free;
  end;

Den ResourceStream dürftest du schon haben, ich müsste grad nachgucken wie man den richtig erzeugt.


Mathematiker - So 23.09.12 17:48

Hallo Martok,
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Oder, wenn du das nur für den Font brauchst, kannst du einfach die dazu gedachte Funktion verwenden ;)
[url=http://msdn.microsoft.com/de-de/library/dd183325.aspx]AddFontMemResourceEx[/url]

Besten Dank. Es funktioniert perfekt und ich muss keine temporäre Datei herstellen. Das Löschen mit RemoveFontMemResourceEx klappt auch.
Merkwürdig und interessant finde ich, dass die zeitweise installierte Schriftart für andere Programme scheinbar unsichtbar ist.

Beste Grüße
Mathematiker

Nachtrag: Die Revision 3 enthält jetzt die von Martok vorgeschlagene Funktion.
Ein Test mit FastMM4 zeigt im Moment noch ein unbekanntes Speicherleck von 12 Byte. AddFontMemResourceEx ist allerdings nicht der Verursacher. Eine Idee, wo das Leck ist, habe ich noch nicht.

Nachtrag 2: Das Leck entsteht wahrscheinlich in der Fremdunit gifimage.pas. Ehe ich allerdings dort durchsehe, wird es etwas dauern.


Mathematiker - So 30.09.12 14:03

Hallo,

trotz intensiver Suche habe ich das Speicherleck in der gifmage.pas nicht gefunden. Kennt jemand von Euch eine andere freiverfügbare Unit zum Laden und Speichern von Gifs, die auch schon mit Delphi 5 arbeitet?

Da gifimage.pas etwas fehlerhaft ist, verzichte ich auf die wenigen gif-Abbildungen und nehme Bitmaps (Rev 4).
Die Ressource wird zwar größer, die Exe aber kleiner, das Speicherleck ist weg und außerdem werden die Abbildungen schneller geladen. Was will man mehr?

Beste Grüße
Mathematiker


Mathematiker - So 14.10.12 14:46

Hallo,
heute Abend beginnt "endlich" der Countdown zum Weltuntergang am 21.Dezember. Es wurde auch langsam Zeit! :wink: Pro 7 sendet den Film "2012"!
Da ich die "Blöd"-Zeitung wirklich(!) nicht lese: Machen die auch schon Panik?

Für alle, deren Angst nun immer größer wird, habe ich noch eine kleine Änderung an der Maya-Kalenderrunde durchgeführt.
Das Programm zählt nun die "uns verbleibende" Zeit runter. Es sind nur noch 67 Tage. :bawling:
Also: Programm (Rev 5) downloaden, starten und fürchten! :lol:
Sollte es mit dem Weltuntergang aber nicht funktionieren, so müssen wir nur 144000 Tage warten, bis zum nächsten.

Beste Grüße
Mathematiker


haentschman - So 14.10.12 15:16

Zitat:
Es sind nur noch 67 Tage. :bawling:

... nicht schlimm. Ich bin zu Hause und stelle für den Notfall ne Buddel edlen Roten auf den Schreibtisch 8)


Rocketeer - Mo 15.10.12 10:55

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:

Da ich die "Blöd"-Zeitung wirklich(!) nicht lese: Machen die auch schon Panik?


"Leider" nicht so wirklich... aber sie halten das Thema auf jeden Fall am köcheln ;)

http://www.bild.de/themen/specials/maya-kalender/nachrichten-news-fotos-videos-21981240.bild.html


Mathematiker - Mo 15.10.12 11:51

user profile iconhaentschman hat folgendes geschrieben Zum zitierten Posting springen:
... nicht schlimm. Ich bin zu Hause und stelle für den Notfall ne Buddel edlen Roten auf den Schreibtisch 8)

Vollkommen richtig. Ich bin zwar mehr für "Connemara 12 year Old Peated Single Malt Irish Whiskey" (Werbung! :wink: ), aber ein edler Roter macht's auch.
Übrigens: Wenn die Welt untergeht, dann auch die "Blöd"-Zeitung, die FDP und auch Daniela Katzenberger. Was spricht also gegen den Weltuntergang?
In dem Sinne: nur noch 66 Tage. :beer:
Beste Grüße
Mathematiker

PS: Für alle, die sich genervt fühlen: Ich werde nicht jeden Tag herunterzählen. :P


Mathematiker - Mi 21.11.12 10:26

Hallo Leute,
langsam wird es Zeit, sich auf den "Weltuntergang" vozubereiten. :lol:
Aus diesem Grund schiebe ich mein Maya-Programm wieder nach vorn! :wink:

Ich überlege schon, ob ich doch noch nach Bugarach [http://www.welt.de/reise/article111187251/Bugarach-soll-vom-Weltuntergang-verschont-bleiben.html] auswandere, aber hier bei Euch ist es auch schön.

In dem Sinne, nur noch 1 Monat! Macht' das Beste daraus. :dance2:

Beste Grüße
Mathematiker


Tranx - Mi 21.11.12 10:34

Macht doch nix, wenn "die Welt" untergeht. Dann haben wir eine Boulevardzeitung weniger!


Ralf Kaiser - Mi 21.11.12 10:41

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:


langsam wird es Zeit, sich auf den "Weltuntergang" vozubereiten. :lol:



Das stimmmt nicht (mehr)!

Google hat uns gerettet: Sie haben den Dezember einfach wegfallen lassen! DAMIT haben die alten Mayas nicht gerechnet! :wink:


Oliver Maas - Do 29.11.12 18:17

;) Wobei es sowas wie Dezember ja nicht gab bei den Maya (die "Maya-Monate" sind ja ein bisschen anders).
Das wiederum macht aber auch nichts, da sie ja nie einen "Untergang" vorausgesagt hatten (der eigentlich nur auf einer Fehlinterpretation einer einzigen Inschrift beruht, die zudem ja ausserhalb dieser einen Stadt nie reproduziert wurde; andere Inschriften zeigen Daten, die weit hinter dem "Enddatum" liegen, also noch weit in unsere Zukunft reichen). Gleichwohl ist dieses Datum als Baktun-Ende natürlich als ein besonderes Datum angesehen worden (der Zeitpunkt der "Einkleidung" eines neuen Herrschers/Gottes auf seinem Thron). Da aber der vorausgehende Text zum Teil düstere Passagen enthält, ist irgendjemand auf die Idee gekommen, dass dann wohl irgendwie "die Welt untergehen" würde.

Das ist ja das Gute an schlechten Nachrichten: die Glaubwürdigkeit wird erhöht.
Und wer von schlechten News ausgeht, kann eben nur noch positiv überrascht werden.
Was ein unbestreitbarer Vorteil ist. ;)

Wir Optimisten können nur negativ überrascht werden.

Olli


Mathematiker - So 16.12.12 17:38

Hallo,
wenn bei 3sat jetzt 8 Stunden lang der Weltuntergang praktiziert wird, darf ich doch mein kleines Apokalypse-Programm in den Vordergrund schieben. :mrgreen:

Wer es noch nicht hat, sollte sich beeilen. Es sind nur noch knapp 5 Tage bis zum Ende. :cry:

Beste Grüße und eine schönen Weltuntergang :wink:
Mathematiker

Nachtrag: Die Welt ist noch nicht untergegangen, aber die Intelligenz schon. 17.20 Uhr und bei 3sat läuft ein Chemnitzer Wünschelrutengänger durch die Botanik. Ich habe gar nicht gewusst, dass es in meiner Stadt solche Idioten gibt. :evil:


Tranx - So 16.12.12 21:03

Also, wir haben noch mehr als 3759 Jahre Zeit, bis die Welt endgültig untergeht. Denn dann beginnt die "neue" Zeitrechnung! ;)

Ob überhaupt irgendetwas Weltbewegendes in den letzten Daten passierte, bleibt noch ein Rätsel. Eine Frage ist zu klären: Welches Datum im Maya-Format hatte der Meteoriteneinschlag vor 65 Millionen Jahren?

Denn schlaft mal die letzten Tage gut! ;)

Hier die Auflistung der Daten:
05.09.0041 8 Baktun 0 Katun 0 Tun 0 Uinal 0 Kin (*)
09.12.0435 9 Baktun 0 Katun 0 Tun 0 Uinal 0 Kin (*)
13.03.0830 10 Baktun 0 Katun 0 Tun 0 Uinal 0 Kin (*)
15.06.1224 11 Baktun 0 Katun 0 Tun 0 Uinal 0 Kin (*)
18.09.1618 12 Baktun 0 Katun 0 Tun 0 Uinal 0 Kin (*)
21.12.2012 13 Baktun 0 Katun 0 Tun 0 Uinal 0 Kin
26.03.2407 14 Baktun 0 Katun 0 Tun 0 Uinal 0 Kin
28.06.2801 15 Baktun 0 Katun 0 Tun 0 Uinal 0 Kin
01.10.3195 16 Baktun 0 Katun 0 Tun 0 Uinal 0 Kin
03.01.3590 17 Baktun 0 Katun 0 Tun 0 Uinal 0 Kin
07.04.3984 18 Baktun 0 Katun 0 Tun 0 Uinal 0 Kin
11.07.4378 19 Baktun 0 Katun 0 Tun 0 Uinal 0 Kin
13.10.4772 0 Baktun 0 Katun 0 Tun 0 Uinal 0 Kin

P.S. kleine Änderung am Programm: Falsche Datumseingaben solltebn abgefangen werden (29.2.2013, Jahr 0), denn es gibt da immer diese Dauermeldung "Falsche Datumsangabe" Und dann kann nur der Prozess abgebrochen werden. Ansonsten ist das Programm einfach sehenswert.


Mathematiker - So 16.12.12 22:26

Hallo Tranx,
user profile iconTranx hat folgendes geschrieben Zum zitierten Posting springen:
Falsche Datumseingaben solltebn abgefangen werden (29.2.2013, Jahr 0), denn es gibt da immer diese Dauermeldung "Falsche Datumsangabe" Und dann kann nur der Prozess abgebrochen werden.

Vielen Dank für den Hinweis. An diese Fehleingaben habe ich nicht gedacht. :autsch:
In der neuen Revision habe ich dies geändert. Bei fehlerhaften Tagesangaben wird ein "in der Nähe" liegender Tag gewählt.
user profile iconTranx hat folgendes geschrieben Zum zitierten Posting springen:
Ansonsten ist das Programm einfach sehenswert.

Danke.

Beste Grüße
Mathematiker


Delphi-Laie - So 16.12.12 23:00

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
An diese Fehleingaben habe ich nicht gedacht.


So dumm kann man oft gar nicht denken, wie andere fahrlässig oder gar vorsätzlich ein Programm fehlbedienen (wenigstens zu versuchen) oder das sogar tatsächlich schaffen.

Man kann den Spieß jedoch generell umdrehen, indem man zu jedem Zeitpunkt eines Programmes die Menge gültiger Eingaben genau beschreibt und implementiert. Das macht zugegebenermaßen zunächst spürbar zusätzliche Denk- und Programmiermühe, das Programm jedoch hinsichtlich seiner Stabilität und Robustheit gegenüber Fehleingaben (fast) bombensicher - fast eben nur hinsichtlich eigener Fehler (=Lücken) bei dieser Abschirmarbeit. Ansonsten flickt man mehr am Programm und ist mehr auf Rückmeldungen angewiesen, da man selbst die Funktionalität des eigenen Programmes vorab kennt und deshalb hinsichtlich seiner Eingaben man weniger kreativ, zielorientierter vorgeht.


Tranx - So 16.12.12 23:08

Delphi-Laie, mag ja sein, dass eine Fehleingabe vorkommt. Aber nicht jede Fehleingabe ist beabsichtigt. Zum Beispiel, wenn Du vorher den 31. 1. 2012 stehen hattest, und den Monat auf 2, 4, ... änderst, ist das automatisch, obwohl Du es nicht wolltest, eine Fehleingabe. Das hat nichts mit unsinnigen Eingaben zu tun, das liegt leider im System der Datumsangaben. Wenn alle Monate die gleiche Zahl von Tagen hätte, wären Fehleingaben weit weniger möglich. Und das Jahr 0 gibt es nun mal. Aber in dem Bereich gilt ja wegen des Julinaischen Datums die Zählung nicht mehr. Und wer weiß, vielleicht gibt es ja noich die Jahrhundertlüge, und wir leben gar nicht im Jahr 2012 nach Christus. ;)


Delphi-Laie - So 16.12.12 23:19

user profile iconTranx hat folgendes geschrieben Zum zitierten Posting springen:
Aber nicht jede Fehleingabe ist beabsichtigt.


Wer behauptet denn den Gegensatz?

Einfach mal den ersten Satz meines vorigen Beitrages aufmerksam lesen!

user profile iconTranx hat folgendes geschrieben Zum zitierten Posting springen:
Zum Beispiel, wenn Du vorher den 31. 1. 2012 stehen hattest,


Wieso ich denn?

user profile iconTranx hat folgendes geschrieben Zum zitierten Posting springen:
und den Monat auf 2, 4, ... änderst, ist das automatisch, obwohl Du es nicht wolltest, eine Fehleingabe.


Auch dazu einfach mal meinen vorigen Beitrag aufmerksam lesen.

user profile iconTranx hat folgendes geschrieben Zum zitierten Posting springen:
Das hat nichts mit unsinnigen Eingaben zu tun, das liegt leider im System der Datumsangaben. Wenn alle Monate die gleiche Zahl von Tagen hätte, wären Fehleingaben weit weniger möglich. Und das Jahr 0 gibt es nun mal. Aber in dem Bereich gilt ja wegen des Julinaischen Datums die Zählung nicht mehr. Und wer weiß, vielleicht gibt es ja noich die Jahrhundertlüge, und wir leben gar nicht im Jahr 2012 nach Christus. ;)


Das System der Daten (Plural von Datum) mir zu erklären, ist beileibe nicht nötig. Sollte allerdings irgendeine vorgefertigte Komponenten solche Fehleingaben ermöglichen, sie also nicht abfangbar machen können, ließe ich diese Komponente bei Entbehrlichkeit links liegen.

Ich habe das an mindestens zwei Programmen erlebt, was für ein fast unendliches Gefummel das ist, nur zulässige (i.S. der weiteren Verarbeitbarkeit) Eingaben auch zuzulassen (i.S. der Eingebbarkeit). Insbesondere bei visuellen Elementen, die sich gegenseitig beeinflussen, ein fast unendliches Geduldsspiel, aber m.E. irgendwann doch zu schaffen.


Mathematiker - So 16.12.12 23:40

Hallo Delphi-Laie,
Hallo Tranx,
das mit den Fehleingaben war mein Fehler.
Ich habe einfach nicht geprüft, was geschieht, wenn man ein ungültiges Datum eingibt.

An solche Dinge denke ich fast nie. Das ist auch der Grund, warum ich mein Geld niemals mit Programmiererei verdienen könnte. Ich müsste danach wochenlang die von mir nicht bedachten Fehlerquellen entfernen.

Ich freue mich immer, wenn ich den Algorithmus, die Grafik, usw. hinbekommen habe. Oft bastel ich dann noch an der Optik etwas herum und bin zufrieden.
Ich versuche mich ja zu bessern, aber in meinem Alter ... :nixweiss:

Beste Grüße
Mathematiker


Tranx - Mo 17.12.12 05:21

Hallo Mathematiker,

das ist eigentlich auch fast unmöglich, alle Fehlermöglichkeiten auszuschließen. Neben dem Datum gibt es eine Menge möglicher Falscheingaben für andere Variablen. Der einfachste Weg bei einem einfachen Eingabefeld ist immer noch die Try ... except ... end- Möglichkeit. In Deinem Fall sind es aber drei Eingabefelder. Das macht die Sache ein wenig schwieriger, dam na ja auch erst einmal das Eingabefeld mit der falschen Eingabe ermitteln muss. Daher mach Dir mal keinen großen Kopf drum.

Vielleicht nimmst Du im gegeben Fall die Komponente DatetimePicker und machst aus drei Feldern eines. Dann ist zudem auch noch das Ergebnis einfach aus der Eigenschaft Value auszulesen.

Die Ideen machen es, nicht die Beseitigung von Fehlern. Der Rest ist fast schon Routine. Doch ohne die Idee macht die Routine nichts.


Nersgatt - Mo 17.12.12 08:26

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Wer es noch nicht hat, sollte sich beeilen. Es sind nur noch knapp 5 Tage bis zum Ende. :cry:

Ich kann euch beruhigen. Die Welt geht NICHT unter. Ich hab einen Majakalender für 2013 gefunden: :zustimm:
user defined image

Also Leute, ihr müsst wohl doch noch Weihnachtsgeschenke kaufen. :mrgreen:


Mathematiker - Mo 17.12.12 14:05

Hallo Nersgatt,
user profile iconNersgatt hat folgendes geschrieben Zum zitierten Posting springen:
Ich hab einen Majakalender für 2013 gefunden: :zustimm:

Das beruhigt mich etwas. :wink:
Aber was sagst Du zur Wettervorhersage für Chemnitz:
wetter

Beste Grüße
Mathematiker


Tranx - Mo 17.12.12 14:09

Ganz einfach, verlasse sofort Chemnitz. Ansonsten könntest Du auf der Stelle verdampfen. ;)

Echt, das wäre was für die Weltuntergangsfanatiker. Darf ich das Bild mal scherzeshalber in Facebook veröffentlichen?


Nersgatt - Mo 17.12.12 14:12

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Aber was sagst Du zur Wettervorhersage für Chemnitz:

Hm, ich sag dazu: gut, dass ich 461 km Luftline von Chemnitz entfernt wohne! :D


Mathematiker - Mo 17.12.12 14:13

user profile iconTranx hat folgendes geschrieben Zum zitierten Posting springen:
Echt, das wäre was für die Weltuntergangsfanatiker. Darf ich das Bild mal scherzeshalber in Facebook veröffentlichen?

Du darfst selbstverständlich.
Die Idee ist aber nicht von mir, sondern von meinem Sohn. Ich hab's nur schnell zusammengestellt.

Beste Grüße
Mathematiker