PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfang & Enddatum einer Kalenderwoche berehcnen


LordZed
2007-07-24, 11:17:26
Hi Leute! Ich muss das Anfangs- & Enddatum einer Kalenderwoche berechnen und habe dafür als Vorgegebene Daten die Nummer der Kalenderwoche (z.B. 10) und das Jahr. Herausfinden muss ich das genaue Datum des Montags und des Sonntags.

Kann mir einer sagen, wie ich das mathematisch machen kann?

Gruß,
LordZed

Monger
2007-07-24, 11:51:58
Hast du sonst noch irgendwelche Hilfsmittel?
Denn du musst immerhin den gesamten Kalender abbilden, inklusive Monatsenden, Schalttagen und sonstigem Pipapo.

Jedes moderne Standard Framework besitzt üblicherweise auch eine Kalenderklasse, die würde dir hier natürlich deutlich weiterhelfen.

LordZed
2007-07-24, 12:32:33
Brauch ich in Access. Sprich ich kann da sicherlich was mit nem Button und VBA machen. Allerdings hab ich nicht wirklich tief gehendes wissen, was VBA angeht... sollte aber nicht das Problem darstellen, da ich genug andere Sprachen kann und deswegen wird es mit dem verstehen wohl nicht so schwer sein ;)

Habe hier (http://www.galileocomputing.de/openbook/vb_net/msvb060003.htm#bild1) zusammen mit dem hier (http://www.akademie.de/programmierung-administration/php/tipps/php-fuer-profis/wochentage-zur-kalenderwoche-berechnen.html) auch schon ne Lösung mit VBA gefunden. Jemand ne bessere? ;)

Das Prinzip:
Montag der 1. Kalenderwoche ausrechnen und mit der AddDate-Funktion einfach (KW-1)*7 Tage draufrechnen und schon ist man beim richtigen Tag. Weiß einer unter welchen voraussetzungen ein Jahr 53 und wann 52 KW hat? ^^

Monger
2007-07-24, 12:41:58
Edit: hier stand Bullshit, deine Lösung ist schon ok.
Wenn das eine vernünftige Datumsfunktion ist, brauchst du dich um Schaltjahre nicht zu kümmern. Du könntest höchstens nach der Rechnung nochmal nachprüfen, ob du dich überhaupt noch im selben Jahr befindest, aber ansonsten würde ich mir darum keinen Kopf machen.

LordZed
2007-07-24, 12:56:27
Jo! Nur tun es die Funktionen da irgendwie nicht weil das VB.Net Funktionen sind... ist anscheinend zu hoch für mein Access '03... :confused:

LordZed
2007-07-24, 13:32:48
Sry für doppelpost:

Ich hab jetzt was geschrieben:

Private Sub setDateToKW_Click()
Dim strDatum As String
Dim datDatum As Date
Dim intKWMontag As Integer
Dim intKW As Integer

Me.Jahr.SetFocus
strDatum = "01.01." & Me.Jahr.Text & " 00:00:00"
If IsDate(strDatum) Then
datDatum = CDate(strDatum)
Else
Me.Jahr.SetFocus
Me.Jahr.Text = "Falsch"
End If
End Sub

Das Problem: Egal was ich jetzt mit datDatum machen will er meckert immer. Oder ist datDatum.AddDate(days_to_add) falsch?

//EDIT
habs schon! Es heißt datDatum = DateTime.DateAdd("d", days_to_add, datDatum)