title image


Smiley Re: Aus einer WochenNr den Montag berechnen: Rekursive Funktion
Hallo Thomas,ich habs zwar nicht getestet, weil ich den Umfang der Funktionen doch sehr groß finde. Aber ich binmir ziemlich sicher, daß sie nicht funktioniert! Das Prinzip ist doch Intervallhalbierung, nicht wahr?Dann kann das Ergebnis aber nur im I n n e r e n des betreffenden Intervalls liegen. Im Jahr 1970 war der Montag der ersten Woche der 29.12.1969. Dieser Wert kann von deinem Programm wohlnicht gefunden werden (Wie gesagt, ich habs nicht ausprobiert!)Nun liegt der 4.1. jeden Jahres immer in der ersten Woche. Das heißt, 7 Tage vorher haben wirimmer einen Tag der letzten Woche des vorhergehenden Jahres. Vielleicht hilft es schon, denAnfangswert der rekursiven prozedur von anfang = dateserial(jahr,1,1)inanfang = dateserial(jahr-1,12,28)zu ändern? Übrigens: Ich verwende zur Berechnung des Montags einer Wochegerne die folgende Prozedur, die vielleicht nicht ganz so effizient ist, aber sehr anschaulich:Function MontagDerWoche(j, w As Integer) As Date Dim res As Date 'Daten auf Konsistenz überprüfen: If w 53 Then MsgBox "Die Wochenzahl passt nicht" Exit Function End If ' Der 4.1. eines jeden Jahres liegt in der ersten Woche! ' (Denn: minderstens 4 Tage des neuen Jahres liegen in der ersten Woche!) res = DateSerial(j, 1, 4) ' Das ist der zugehörige Montag res = res - Weekday(res, vbMonday) + 1 ' Der gesuchte Montag ist (w-1)*7 Tage später res = res + (w - 1) * 7 MontagDerWoche = resEnd FunctionGruß Wolfgang

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: