Ich !!!
Und da suche iche einen freundlichen Mitmenschen, der bereit wäre, ab und wann bei einem kleinen Programmierproblem zu helfen.
Jetzt suche ich z.B. verzweifelt nach einem Quellcode, der mich in die Lage versetzt, nach einer Eingabe des Tagesdatums (tt.mm.jjjj) den Wochentag zu ermitteln.
Gibt es jemanden in den unendlichen Weiten des Internet?
Freundliche Grüße
hapec
Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge
Hi!
Um welche Basicvariante geht es denn? Die des C64 (Commodore V2 basic) sieht da etwas anders aus, als Micorsoft Visual Basic.NET - obwohl das erste Basic (das des C64) ursprünglich auch von Microsoft stammt. ;-)
Ich tippe, dass moderne Basicvarianten evtl. schon eine Funktion mitbringen, die Details zu einem Datum bestimmen kann.
Falls du nur Hinweise zur Berechnung suchen solltest, kann ich dir die Richtigen Stucihworte aus dem Gedächtnis liefern. genauere Quelltexte müsste ich dann auch erst suchen oder schreiben.
Der Wocheentag lässt sich IMHO am einfachsten über einen julianischen tageszähler (auch "Julianisches Datum" genannt) bestimmen. Ein julianischer Tageszähler berechnet aus einem übergebenen Datum einen Differenzwert in Tagen zu einem fixen anderen Datum. In der Praxis oft auf den 01.01.1900 bezogen. Wenn mann den Wochentag von diesem Bezugsdatum kennt (muss man gegebenfalls in einem Kallender nachschlagen), dann kann man aus der Differenz in Tagen den Wochentag des gesuchten Datums berechnen.
Beispiel:
Bezugsdatum ist der 01.01.2006, dass war ein Sonntag.
Heute ist der 06.03.2006.
Die Deifferenz in tagen wäre 30+28+6=64 Tage. Wir benötigen den Modullo von 64 durch 7 (ganzaliger Rest der Division) -> 1
Sonntag plus 1 Tag ist Montag.
Ich hab' das im Beispiel ohne julianisches Tagesdatum berechnet. Das erleichert die sache, weil es alle Schaltjahre berücksichtigt.
Bis dann
Andreas
Das ist erstmal kein programmiertechnisches Problem, sondern erfordert die Auswahl eines passenden Algorithmus,
unabhängig von der eingesetzten Programmiersprache. Die Implementierung in eine bestimmte Sprache dürfte dann, hat man
erstmal den Algorithmus gefunden, kein großes Problem darstellen. Siehe auch die Antwort von Andreas42. Ferner muß man wissen, daß der 1. Januar
4713 v.Chr ein Montag war. Es bleibt, das Gregorianische Datum ins Julianische Datum umzurechnen. Dazu guckst Du hier. Da findest Du den passenden Algorithmus.
Gruß
Siebenkäs
[Diese Nachricht wurde nachträglich bearbeitet.]
In VB5/VB6 liefert Dir Weekday() den Tag numerisch, Format$() den Tag als Name. Zu beidem gibt es Beispiele in der Hilfe.