Hallo Leute,
zurzeit übersetze ich mein VBA Code in C# und stehe des Öfteren vor mehr oder wenigen großen Schwierigkeiten aber hier fehlt
mir nun jegliche Fantasie
Ich habe ein VBA Code der mir überprüft, ob eine Zelle ein Datum ist und ob dieser in der gewünschten Kalenderwoche liegt.
In VBA habe ich eine Funktion die dann aufgerufen wird (KalenderwocheNachDin) die eben schaut, ob diese Zelle im jeweiligen Bereich liegt und danach erfolgen weitere Aktionen.
Mein Problem ist nun wie ich das selbige in C# umwandle, ich habe zwar den Code der mir die aktuelle KW errechnet aber wie übergebe ich dieser Methode eine Zelle, sodass es wie in VBA automatisch erkennt ob es die oder jene KW ist?
Zum Verständnis füge ich mein VBA Code an, sowie auch mein C# Code, hoffe ihr könnt mir weiter helfen.
Funktion Kalenderwoche VBA:
Funktion wo mittels VBA aufgerufen wird:
Meine C# KW Methode:
Mein versuch zum Übersetzen:
zurzeit übersetze ich mein VBA Code in C# und stehe des Öfteren vor mehr oder wenigen großen Schwierigkeiten aber hier fehlt
mir nun jegliche Fantasie
Ich habe ein VBA Code der mir überprüft, ob eine Zelle ein Datum ist und ob dieser in der gewünschten Kalenderwoche liegt.
In VBA habe ich eine Funktion die dann aufgerufen wird (KalenderwocheNachDin) die eben schaut, ob diese Zelle im jeweiligen Bereich liegt und danach erfolgen weitere Aktionen.
Mein Problem ist nun wie ich das selbige in C# umwandle, ich habe zwar den Code der mir die aktuelle KW errechnet aber wie übergebe ich dieser Methode eine Zelle, sodass es wie in VBA automatisch erkennt ob es die oder jene KW ist?
Zum Verständnis füge ich mein VBA Code an, sowie auch mein C# Code, hoffe ihr könnt mir weiter helfen.
Funktion Kalenderwoche VBA:
Quellcode
- Function KalenderwocheNachDin(dat As Date) As Integer
- Dim a As Integer
- a = Int((dat - DateSerial(Year(dat), 1, 1) + ((Weekday(DateSerial(Year(dat), 1, 1)) + 1) Mod 7) - 3) / 7) + 1
- If a = 0 Then
- a = KalenderwocheNachDin(DateSerial(Year(dat) - 1, 12, 31))
- ElseIf a = 53 And (Weekday(DateSerial(Year(dat), 12, 31)) - 1) Mod 7 <= 3 Then
- a = 1
- End If
- KalenderwocheNachDin = a
- End Function
Funktion wo mittels VBA aufgerufen wird:
Quellcode
- For i = 13 To 1044
- 'ws_anfang.Cells(i, 19).value muss an funktion zum umwandeln gegeben werden
- If IsDate(ws_anfang.Cells(i, 19).value) = True Then
- If KalenderwocheNachDin(ws_anfang.Cells(i, 19).value) = KalenderwocheNachDin(Date) And Year(ws_anfang.Cells(i, 19).value) = Year(Date) Or KalenderwocheNachDin(ws_anfang.Cells(i, 20).value) = KalenderwocheNachDin(Date) And Year(ws_anfang.Cells(i, 20).value) = Year(Date) Then
- //hier passiert was
- End If
- End If
- Next i
Meine C# KW Methode:
Mein versuch zum Übersetzen: