Datum berechnen

13/09/2009 - 21:21 von Bernhard Weiss | Report spam
Hallo NG,

ich möchte aus einer Angabe wie "2. Dienstag im nàchsten Monat" das
entsprechende Datum berechnen.
Leider scheiters schon am Ansatz. Habt Ihr einen Tipp für mich, wie ich da
herangehen kann?

Viele Grüße
Bernhard
 

Lesen sie die antworten

#1 Martin H.
13/09/2009 - 23:23 | Warnen spam
Hallo Bernhard,

ich möchte aus einer Angabe wie "2. Dienstag im nàchsten Monat" das
entsprechende Datum berechnen.
Leider scheiters schon am Ansatz. Habt Ihr einen Tipp für mich, wie ich da
herangehen kann?



die Weekday-Funktion gibt Dir den entsprechenden Tag zurück. Nun musst
Du nur noch die Anzahl der Tage addieren und Du hast das gewünschte
Datum. Das ganze sàhe dann z.B. so aus (Vorsicht bei Zeilenumbrüchen):

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim dt As Date = GetSecondWeekday(Now, FirstDayOfWeek.Saturday)
MsgBox(dt.ToString())
End Sub

Private Function GetFirstWeekday(ByVal dt As Date, ByVal enWeekday As
FirstDayOfWeek) As Date
Dim retVal As Date = New Date(dt.Year, dt.Month, 1)

While Not Weekday(retVal) = enWeekday
retVal = DateAdd(DateInterval.Day, 1, retVal)
End While

Return retVal
End Function

Private Function GetSecondWeekday(ByVal dt As Date, ByVal enWeekday As
FirstDayOfWeek)
Dim retVal As Date = GetFirstWeekday(dt, enWeekday)
retVal = DateAdd(DateInterval.Day, 7, retVal)
Return retVal
End Function

Private Function GetThirdWeekday(ByVal dt As Date, ByVal enWeekday As
FirstDayOfWeek)
Dim retVal As Date = GetFirstWeekday(dt, enWeekday)
retVal = DateAdd(DateInterval.Day, 14, retVal)
Return retVal
End Function

Private Function GetFourthWeekday(ByVal dt As Date, ByVal enWeekday As
FirstDayOfWeek)
Dim retVal As Date = GetFirstWeekday(dt, enWeekday)
retVal = DateAdd(DateInterval.Day, 21, retVal)
Return retVal
End Function


Beste Grüße,

Martin

Ähnliche fragen