Здравите.
Може ли някои да ми помогне да преведа този код от VB.NET C#
Благодаря предварително.
Function checkEGN(ByVal EGN As String, ByVal pol As Byte) As String
Dim g, m, d As Integer
Dim sum As Short
Dim T() As Byte = {2, 4, 8, 5, 10, 9, 7, 3, 6}
If EGN.Length <> 10 Then
Return "Грешма дължина!"
End If
For i As Byte = 0 To 9
If Not Char.IsDigit(EGN(i)) Then
Return "Грешка " & i + 1 & " позиция"
End If
Next
g = Convert.ToInt16(EGN.Substring(0, 2))
m = Convert.ToInt16(EGN.Substring(2, 2))
d = Convert.ToInt16(EGN.Substring(4, 2))
If m > 40 Then
m -= 40
g += 2000
ElseIf m > 20 Then
m -= 20
g += 1800
Else
g += 1900
End If
If m > 12 Or m < 1 Then
Return "Грешен месец!"
End If
If d < 1 Or d > Date.DaysInMonth(g, m) Then
Return "Грешен ден"
End If
If pol = 0 Xor (Val(EGN(8)) Mod 2 = 0) Then
Return "Грешен пол!"
End If
sum = 0
For i As Byte = 0 To 8
sum += Val(EGN(i)) * T(i)
Next
sum = sum Mod 11
If sum = 10 Then sum = 0
If sum <> Val(EGN(9)) Then
Return "Грешма комтролана цифра"
End If
Return ("ОК")
End Function