2010-03-08 3 views
1

날짜 형식이 Hijri에 저장되는 sql 테이블이 있습니다. 이제는 사용자가 dateField를 업데이트하도록해야하는 vb.net 응용 프로그램을 작성하고 있습니다.Vb에서 그레고리력을 Hijri 날짜로 변환 할 수 있습니까?

그래서 내가 그레고리오에있는 datepicker를 배치하고 사용자가 날짜를 선택하고 업데이트하기 전에 Hijri 날짜로 변환 할 수 있습니다. 사용자가 날짜를 선택하고 저장 버튼을 클릭하면 날짜가 hijri 형식으로 SQL에 업데이트되어야합니다.

지금은 사용자가 tms AdvEdit에서 수동으로 날짜를 입력하고 있습니다.

이 작업을 수행하는 데 사용할 수있는 코드가 있습니까? 시간과 배려를 위해 미리 감사드립니다.

답변

4

아래의 코드는 전달 된 매개 변수에 따라 그레고리오/회교로 변환됩니다

Public Function ConvertDateCalendar(ByVal DateConv As DateTime, 
ByVal Calendar As String, ByVal DateLangCulture As String) As String 

     Dim DTFormat As DateTimeFormatInfo 
     DateLangCulture = DateLangCulture.ToLower() 
     ''' We can't have the hijri date writen in English. We will get a runtime error - LAITH - 11/13/2005 1:01:45 PM - 

     If Calendar = "Hijri" AndAlso DateLangCulture.StartsWith("en-") Then 
      DateLangCulture = "ar-sa" 
     End If 

     ''' Set the date time format to the given culture - LAITH - 11/13/2005 1:04:22 PM - 
     DTFormat = New System.Globalization.CultureInfo(DateLangCulture, False).DateTimeFormat 

     ''' Set the calendar property of the date time format to the given calendar - LAITH - 11/13/2005 1:04:52 PM - 
     Select Case Calendar 
      Case "Hijri" 
       DTFormat.Calendar = New System.Globalization.HijriCalendar() 
       Exit Select 

      Case "Gregorian" 
       DTFormat.Calendar = New System.Globalization.GregorianCalendar() 
       Exit Select 
      Case Else 

       Return "" 
     End Select 

     ''' We format the date structure to whatever we want - LAITH - 11/13/2005 1:05:39 PM - 
     DTFormat.ShortDatePattern = "dd/MM/yyyy" 
     Return (DateConv.[Date].ToString("f", DTFormat)) 
    End Function 
코딩

해피 !!!!!

+1

이 ravia 이봐, THT는 굉장했다

4.0 .NET goodluck는에 더 이상 변환 할 필요는 없습니다! !!!! 정말 고맙습니다 !!! – ahmed

1

친애하는 Ahmad, .net이 작업을 수행하는 PersianCalendar 클래스를 제공합니다.

필요한 것은 PersianCalendar에서 인스턴스를 만들고 사용하는 것입니다. 모든 방법은 익숙하게

System.Globalization.PersianCalendar pc = new PersianCalendar(); 
pc.GetDayOfMonth(YourDate); // and so on 

메모와 같은 모든 .NET 라이브러리가 동일하고 각 닷넷 플랫폼 언어 (likeVB, C#을, 등)에서 사용할 수 있으며, 그들 모두는 CLR에 컴파일, 그래서 그냥 만드는 것이 인스턴스와 라이드.

또한 DB에 조지아 날짜를 저장하고 날짜를 표시하고 싶을 때 페르시아어 또는 다른 달력으로 변환하면 응용 프로그램을 더 쉽게 세계화 할 수 있습니다.

및 Microsoft 추가 회교 Shamsi 캘린더 일정의 유형으로 4 .NET으로하고

관련 문제