SOLVED. I don't know if this is the easiest way...but here is the final code that work.
Public Function GetDaysInMonth(ByVal dt As Date,
Optional ByVal sCalendar As String = "GREGORIAN") As Integer
System.Globalization.CultureInfo.InvariantCulture
Dim cal As System.Globalization.GregorianCalendar
Dim y, m As Integer
y = Year(dt)
m = Month(dt)
Select Case UCase(sCalendar)
Case "HEBREW"
Dim cal1 As New HebrewCalendar
Return (cal1.GetDaysInMonth(y, m))
Case "HIJRI"
Dim cal2 As New HijriCalendar
Return (cal2.GetDaysInMonth(y, m))
Case "JAPENESE"
Dim cal3 As New JapaneseCalendar
Return (cal3.GetDaysInMonth(y, m))
Case "JULIAN"
Dim cal4 As New JulianCalendar
Return (cal4.GetDaysInMonth(y, m))
Case "KOREAN"
Dim cal5 As New KoreanCalendar
Return (cal5.GetDaysInMonth(y, m))
Case "TAIWAN"
Dim cal6 As New TaiwanCalendar
Return (cal6.GetDaysInMonth(y, m))
Case "THAIBUDDHIST"
Dim cal7 As New ThaiBuddhistCalendar
Return (cal7.GetDaysInMonth(y, m))
Case Else 'Gregorian
Return (cal.GetDaysInMonth(y, m))
End Select
End Function