WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Immerwährender Kalender (http://www.wcm.at/forum/showthread.php?t=197031)

tivise 10.08.2006 16:57

Immerwährender Kalender
 
Hallo

Also ich hab mal die Datumsfunktion genauer betrachtet, und bin auf etwas gestoßen das ich nicht und nicht verstehe.


Der Immerwährende Kalender.

Ist ein tolles Ding, einfach zu lesen und uuuur wichtig!

Wenn ich jetzt einen Tag (Mo-SO) herausfinden möchte, ist das Schema zum lesen :

gesuchter Tag(Zahl) + $statische Zahl
in der Reihe des Jahres.

Die Frage die ich mir stelle ist wie man auf die statischen Zahlen kommt. Die verfolgen keinen eindeutigen Algorythmus und sind nicht berechenbar (für mich)

Ich poste später noch eine Grafik um das ganze zu logisieren.

mfG

pong 10.08.2006 18:15

Zitat:

Datumsfunktion
von was?

pong

tivise 10.08.2006 20:27

Ähm...generell.

Wie der Pc die Wochentage einem bestimmten Datum zuordnen kann von 1901 bis 2030.

pong 11.08.2006 06:34

Zitat:

Original geschrieben von tivise
Ähm...generell.

Wie der Pc die Wochentage einem bestimmten Datum zuordnen kann von 1901 bis 2030.

absolute Zeit und weiterzählen meinst?

Zitat:

Die Frage die ich mir stelle ist wie man auf die statischen Zahlen kommt. Die verfolgen keinen eindeutigen Algorythmus und sind nicht berechenbar (für mich)
weiterführend http://www.kalendersysteme.de/deutsch/index.html

pong

tivise 11.08.2006 11:55

Ist ein netter link, aber hilft mir nicht weiter Danke trotzdem.

Ich hab gestern schon versucht ein Foto von einer Darstellung hochzuladen, war aber so groß das sie als Zip auch nicht draufging.

werd das ganze jetzt eintippen.

_____________ __________________________________________________
JAHR_________| MONAT |
01___________|Diese Zahlen sind nicht der Wahrheit entsprechend_|
02___________| jan feb etc...___________________________________|
03___________|____________________________________ ______________|
04___________| 1 2 3 4 5 6 0 1 2 3 4 5__(immer 12 Zahlen)_______|
05___________| 3 2 4 0 3 1 3 2 1 4 6 4__________________________|
_etc.________|_etc._______________________________ ______________|


______________________________________
MO___DI___MI___DO___FR___SA___SO______|
_______________________________1______|
2_____3____4____5____6____7____8______|
9_____etc.____________________________|
____________________34____35___36_____|
37____________________________________|
______________________________________|

__________________________________________________ _________________
Wenn ich nun bsp.-weise den

1.1.2005 suche

(wissen will welcher Wochentag das war) ist das Schema folgendes:

05: ist in Zeile 5 der Spalt Jahr zu finden.

01: ich suche das 1. Monat im Jahr (Jänner) siehe Tabelle Monat/Spalte 1 (in diesem Fall die Zahl 3)

01: ich suche den ersten Tag des Monats Jänner (Jeder Tag entspricht der Zahl des Datums (1 - 31))

Ich addiere nun die Zahl des gesuchten Tages (hier 1) und die "berechnete" Zahl aus der Tabelle monat (hier 3)

Das Ergebnis lautet: 4
4: Ich sehe in der Tabelle mit den Wochentagen bei der Zahl 4 den Tag MITTWOCH. Somit war nach diesem Schema der 1.1.2005 ein MITTWOCH.
(Vorrausgesetzt der 1 Tag war ein SO).
__________________________________________________ __________________

Die Frage nochmal: Wie kann man die Zahlen aus der Tabelle Monat errechnen? Hoffe diese ASCII-Grafik ist verständlich.

mfG

Satan_666 18.08.2006 12:26

Was mich jetzt ein bisserl stutzig macht, sind die Worte in Deiner "Grafik": Diese Zahlen sind nicht der Wahrheit entsprechend.

Ich assoziiere also, dass bei Deiner realen Grafik komplett andere Zahlen stehen.

Wenn es so sein sollte, dann ist die Antwort klar: diese Zahlen sind nichts anderes als ein so genanntes Displacement, welches zum errechneten Wert addiert werden muss, um die korrekte Spalte im Wochentag-Diagramm zu finden. Berechnen im eigentlichen Sinn sind diese nicht, sondern diese wurden einfach mathematisch ermittelt.

Das Displacement geht jetzt davon aus, dass ein Wert 0 einen ganz bestimmten Wochentag entspricht. Nehmen wir an, der Wert 0 wäre ein Samstag, dann entspricht eine 1 einem Sonntag, eine 2 einem Montag usw. Was ich jetzt brauche, sind Kalender für alle Jahre, die in der Tabelle vorkommen (in Deinem Fall von 1901 bis 2030). Dann brauche ich nur noch schauen, an welchem Wochentag der 1.Jänner eines Jahres fällt (beispielsweise war der 1.1.2004 ein Donnerstag), dann zähle ich wie folgt: Sonntag = +1, Montag = +2, Dienstag = +3, Mittwoch = +4, Donnerstag = +5. Ich trage also in der ersten Monatsspalte des Jahres 2004 eine 5 ein. Selbiges mache ich für den Februar (der 1.2.2004 ist ein Sonntag), also kommt in die zweite Monatsspalte des Jahres 2004 eine 1 (siehe oben). So gehe ich vor bis zum Dezember und dann für jedes andere beliebige Jahr.
Wichtig: wenn ich beispielsweise die 0 als Mittwoch deklariere, dann sieht die Wochentagstabelle natürlich um diesen Wert verschoben aus.

Einzig: keine Funktion in der EDV verwendet solche Tabellen. Es gibt eine relativ einfache Berechnungsformel für ein Datum, welches als "Abfallprodukt" auch den Wochentag ermittelt. Mit einer kleinen Abwandlung ist man dann beispielsweise in der Lage, alle Feiertage zu ermitteln, da die beweglichen kirchlichen Feiertage von Ostern abhängig sind und sich das Datum für Ostern bequem errechnen lässt.

tivise 18.08.2006 17:09

Danke sowas in der Richtug hab ich mir schon gedacht, aber hast du das aus einer verlässigen Quelle oder ist das von dir so interpretiert?

Satan_666 22.08.2006 14:18

Ich hatte mal in der Firma den Algorithmus, um mit Datümern zu rechnen. Da war es unter Anderem so, dass man in einer Variablen eine Zahl zwischen 0 und 6 bekam, wobei 0 - glaube ich - ein Dienstag ist. Als Nebenprodukt bekam man eine Zahl, welche die Anzahl der Tage bezifferte seit einem fiktiven Datum. Wenn man also 2 Datümer damit umgerechnet hat, konnte man bequem die Differenz berechnen, also die Anzahl der Tage, die dazwischen liegen.

Müsste mal zu Hause nachsehen, ob ich den Algorithmus noch irgendwo finde; wenn ja, poste ich hier gerne rein. Wird aber erst frühstens nächste Woche sein, davor habe ich voraussichtlich keine Zeit zum Suchen. Und: kann auch nicht versprechen, ob ich ihn tatsächlich noch finde.


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag