可以在Vb中将Gregorian转换为Hijri日期吗?

时间:2010-03-08 06:35:26

标签: vb.net datetime

我在sql中有一个表,其中日期格式存储在Hijri中。现在我正在开发一个vb.net应用程序,我必须让用户更新该dateField。

因此,如果我放置一个datepicker(以Gregorian为单位)并且用户选择日期并在更新之前将其转换为Hijri日期,那么这是可能的。我的意思是当用户选择日期并单击保存按钮时,日期应该在sql中以hijri格式更新。

目前,用户正在tms AdvEdit上手动输入日期。

是否有任何代码可用于完成此任务。提前感谢您的所有时间和考虑。

2 个答案:

答案 0 :(得分:4)

以下代码将根据传递的参数转换为Gregorian / Hijri:

   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 :(得分:1)

亲爱的艾哈迈德,.net提供一个PersianCalendar类,为您完成此任务。

您只需要从PersianCalendar创建一个实例并使用它。所有方法都比较熟悉,如

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

请注意,所有.net库都是相同的,您可以在每种.Net平台语言中使用它们(如VB,C#等),所有这些都将编译为CLR,所以只需创建一个实例并骑行。

我还强烈建议您将格鲁吉亚日期存储到您的数据库中,当您想要显示日期,将其转换为波斯语或任何其他日历时,这可以让您更简化应用程序的全球化。

请注意,Microsoft将Hijri Shamsi日历添加为.Net 4作为一种日历,您无需再在.net 4.0中进行转换

好运