0
나는 문화 달력으로 놀고있다. GregorianCalendar (및 기타)가 System.Globalization.Calendar
이하의 유형이 될 것이라고 생각 했겠지만 그렇지 않습니다. Calendar와 동일한 세계화 클래스입니다. 아래 함수에서 내가하고 싶은 일을 할 수 있다고 생각하지 않지만 스크랩하기 전에 ...함수에서 System.Globalization 캘린더를 동적으로 선언 하시겠습니까?
"cal"에 대한 오류가 발생하면 닫힌 블록에 변수가 숨겨져 있지만 설정을 완료했습니다. dim
문에 기본값으로 설정하십시오. Calendar 클래스에는 문화권을 선언하고 페인트 할 수있는 권한이없는 것 같습니다. "문화적"달력 클래스를 선언해야하고 변경할 수없는 것 같습니다. 이 문제를 해결하고 짧은 기능을 유지할 수있는 방법이 있습니까?
Public Function GetDaysInMonth(ByVal dt As Date,
Optional ByVal sCalendar As String = "GREGORIAN") As Integer
Dim cal As System.Globalization.GregorianCalendar
Dim y, m As Integer
Select Case UCase(sCalendar)
Case "HEBREW"
Dim cal As New HebrewCalendar
Case "HIJRI"
Dim cal As New HijriCalendar
Case "JAPENESE"
Dim cal As New JapaneseCalendar
Case "JULIAN"
Dim cas As New JulianCalendar
Case "KOREAN"
Dim cal As New KoreanCalendar
Case "TAIWAN"
Dim cal As New TaiwanCalendar
Case "THAIBUDDHIST"
Dim cal As New ThaiBuddhistCalendar
Case Else 'Gregorian
End Select
y = Year(dt)
m = Month(dt)
Return (cal.GetDaysInMonth(y, m))