Wochentag errechnen
Übersicht

Dirk KnoopBetreff: Wochentag errechnen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich habe drei Variablen: tag=1 monat=12 jahr=1994 Wie kann ich anhand dieser ersten 3 Variablen den Wochentag berechnen ? wochentag$="?" Gruß, Dirk |
||
www.kostenloser-fussballmanager.de
www.discaim.de - weil Spaß kein Zufall ist www.torchance.de - ein etwas anderer Fußball-Manager |
![]() |
Freeman |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi
na da zum Beispiel der 27.01 nicht immer ein Montag ist oder ein Dienstag kann man das denke ich nicht so genau sagen, oder du nimmst dir ein Datum 1.1.1994 und legst fest das das ein Donnterstag wäre. Dann könntest du sämtliche andere Tage berechnen, aber sonst wäre das nicht möglich. FrEeMaN |
||
![]() |
soli |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab ich aus irgendeinem showcase,
weiss die Quelle jetzt aber nicht mehr. Code: [AUSKLAPPEN] a = (14-monat)/12
y = jahr - a m = monat + (12*a) - 2 weekd = (tag+y+(y/4)-(y/100)+y/400+(31*m)/12) Mod 7 Select weekd Case 0 wochentag$="Sonntag" Case 1 wochentag$="Montag" Case 2 wochentag$="Dienstag" Case 3 wochentag$="Mittwoch" Case 4 wochentag$="Donnerstag" Case 5 wochentag$="Freitag" Case 6 wochentag$="Samstag" End Select |
||
solitaire |
![]() |
KabelbinderSieger des WM-Contest 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nun, du könntest schonmal festlegen:
Heute am 29.07.04 ist Donnerstag, also war am 26.07.04 Montag Dann bräuchtest du irgendetwas, dass dir errechnen kann, wieviele Tage das Angegebene Datum nach dem 26.07.04 war. Das kannst du dann in ner Variable speichern - nehmen wir mal a - und den Wochentag so ausrechnen: Code: [AUSKLAPPEN] a = 89 ;Tage nach dem 26.07.04
tag$ = "St. Nimmerleinstag" Select a Mod 7 Case 0 tag$ = "Montag" Case 1 tag$ = "Dienstag" Case 2 tag$ = "Mittwoch" Case 3 tag$ = "Donnertag" Case 4 tag$ = "Freitag" Case 5 tag$ = "Samstag" Case 6 tag$ = "Sonntag" End Select Print tag$ Die Function, die dir sagen kann, vor wieviel tagen der 26.07.04 war könnte aber ziemlich knifflich zu programmieren sein, Dank den Monaten, die 31 Tage haben und dem Idioten der das Schaljahr erfunden hat ![]() |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
VERSCHOBEN nach allgemein. | ||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schau auf Blitzbase - Datumarithmetik in Quellcodes.... | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
wozu?
die Funktion, die Soli gepostet hat ist genial. Total kurz und mit Stichproben korrekt. Danke Soli MfG |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Ich hab auch noch ein Programm zu dem Thema: Code: [AUSKLAPPEN] Graphics 640, 480, 32 SetBuffer BackBuffer() Dim mDayPerMonth( 12 ) Dim mWeekDays$( 7 ) Init() Print CalcDayOfWeek( 2050, 11, 18 ) WaitKey End ;Init()------------------------------------------- Function Init() Restore dataSet For i = 0 To 11 : Read mDayPerMonth( i ) : Next For i = 0 To 7 : Read mWeekDays( i ) : Next End Function ;Idiv()------------------------------------------- Function idiv( nDivident, nDivisor ) Return Floor( nDivident / nDivisor ) End Function ;LeapYear()--------------------------------------- Function LeapYear( nYear ) Return ( ( nYear And 3 ) = 0 ) And ( ( ( nYear Mod 100 ) <> 0 ) Or ( ( nYear Mod 400 ) = 0 ) ) End Function ;DaysPerMonth()----------------------------------- Function DaysPerMonth( nYear, nMonth ) Local nResult = 0 nMonth = nMonth - 1 nResult = mDayPerMonth( nMonth ) If ( nMonth = 1 ) Then If ( LeapYear( nYear ) ) nResult = nResult + 1 End If Return nResult End Function ;CheckDate---------------------------------------- Function CheckDate( nYear, nMonth, nDay ) If ( nYear < 1582 ) Return 0 If ( nYear = 1582 ) If ( nMonth < 10 ) Return 0 If ( nYear = 1582 ) If ( nMonth = 10 ) If ( nDay < 15 ) Return 0 If ( ( nMonth < 1 ) Or ( nMonth > 12 ) ) Return 0 If ( ( nDay < 1 ) Or ( nDay > DaysPerMonth( nYear, nMonth ) ) ) Return 0 Return 1 End Function ;CalcDate----------------------------------------- Function JulDate( nYear, nMonth, nDay ) Local nTmpYear, nTmpMonth, nResult = -1 If ( nYear = 0 ) Return nResult If ( nMonth < 3 ) nTmpYear = nYear - 1 nTmpMonth = nMonth + 12 Else nTmpYear = nYear nTmpMonth = nMonth End If nTmpMonth = nTmpMonth + 1 nResult = nTmpYear * 365 + idiv( nTmpYear, 4 ) + idiv( ( nTmpMonth * 306 ), 10 ) + nDay + 1720995 If ( nResult > 2299170 ) nResult = nResult - idiv( nTmpYear, 100 ) + idiv( nTmpYear, 400 ) + 2 Else If ( nResult > 2299160 ) nResult = nResult - idiv( nTmpYear, 100 ) + idiv( nTmpYear, 400 ) + 12 End If Return nResult End Function ;CalcDayOfWeek------------------------------------ Function CalcDayOfWeek$( nYear, nMonth, nDay ) If ( nYear < 100 ) nYear = nYear + 1900 End If nWeekDay# = JulDate( nYear, nMonth, nDay ) Mod 7 If ( CheckDate( nYear, nMonth, nDay ) = 0 ) nWeekDay = 7 Return mWeekDays( nWeekDay ) End Function ;DataSet------------------------------------------ .dataSet Data 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 Data "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag", "Datum ungueltig" grüße ![]() |
||
http://bl4ckd0g.funpic.de |
lettorTrepuS |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger. | ||
Ensign Joe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] If y/4 schaltjahr = true ![]() |
||
Ich habe jetzt eine Pommesbude aufgemacht am Münchner Hauptbahnhof.
Und da ich Herbert Görgens heiße, heißt diese Pommesbude Herbert's Pommesbude ![]() |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Code: [AUSKLAPPEN] Function LeapYear( nYear ) Return ( ( nYear And 3 ) = 0 ) And ( ( ( nYear Mod 100 ) <> 0 ) Or ( ( nYear Mod 400 ) = 0 ) ) End Function Schaltjahr? Is doch drinn. :] @ShadowTurtle: Zum Code, das is nur eine Übersetzung von Javascript nach BlitzBasic. Evtl. hast du das da schonmal gesehen. grüße |
||
http://bl4ckd0g.funpic.de |
lettorTrepuS |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger. | ||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Ensign Joe
bei dir ist immer Schaltjahr wenn dann Code: [AUSKLAPPEN] If Not y Mod 4 Then schaltjahr = True aber selbst das ist zu ungenau, siehe Davids letzten Schnipsel. MfG |
||
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dieses Thema hatten wir auch schon mal im Informatikunterricht, war so ähnlich wie die von Soli, aber - warum funzt die überhaupt? Weis zufällig jemand warum dieses tolle Wochentagsberechner selbst beim Februar, in Schaltjahren und sonstwo funktioniert? ![]() Gruß Timo |
||
Dirk Knoop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
Danke für eure Antworten! Ich habe die Funktionen noch nicht ausprobiert - habe leider heute keine Zeit. Werde ich aber am Sonntag machen. Danke noch einmal! Gruß, Dirk |
||
www.kostenloser-fussballmanager.de
www.discaim.de - weil Spaß kein Zufall ist www.torchance.de - ein etwas anderer Fußball-Manager |
![]() |
soli |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Weis zufällig jemand warum dieses tolle Wochentagsberechner selbst beim Februar, in Schaltjahren und sonstwo funktioniert?
Mathmatik? ![]() |
||
solitaire |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Würd sagen er soll sich mal die Formel genau ansehen und vorallem versuchen nachzuvollziehen was da gemacht wird. Dann wird er schon rausbekommen warum das alles so schön funktioniert. ![]() grüße |
||
http://bl4ckd0g.funpic.de |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group