با استفاده از این تابع همانند مثال قادر به تبدیل تاریخ میلادی به هجری شمسی می باشید، شما می توانید تاریخ میلادی را از بانک اطلاعاتی نیز دریافت نمایید و آن را به تاریخ هجری شمسی تبدیل نمایید.
برای تبدیل کافیست تاریخ میلادی را همانند مثال داخل عبارت ()En2Fr قرار دهید .
<%@ CodePage=65001 %>
<script language="VB" runat="server">
Sub Page_Load(S As Object, E As EventArgs)
end sub
Function En2Fr (sStr)
Dim yy, mm, dd,wd
dim i
dim gdate As DateTime
dim mon as String()
dim wik as string()
wik = new string() {"يکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنج شنبه", "جمعه", "شنبه"}
Mon = new String() { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند"}
gdate = sStr
yy=gdate.Year
mm=gdate.Month
dd=gdate.Day
wd=gdate.DayOfWeek
dim E = 79
dim a = 0
Dim m_day(12)
Dim s_day(12)
m_day(1) = 31
m_day(2) = 28
m_day(3) = 31
m_day(4) = 30
m_day(5) = 31
m_day(6) = 30
m_day(7) = 31
m_day(8) = 31
m_day(9) = 30
m_day(10) = 31
m_day(11) = 30
m_day(12) = 31
s_day(1) = 31
s_day(2) = 62
s_day(3) = 93
s_day(4) = 124
s_day(5) = 155
s_day(6) = 186
s_day(7) = 216
s_day(8) = 246
s_day(9) = 276
s_day(10) = 306
s_day(11) = 336
s_day(12) = 365
If yy Mod 4 = 0 Then
m_day(2) = 29
E = 80
End If
For i = 1 To mm - 1
a = a + m_day(i)
Next
a = a + dd
If a > E Then
a = a - E
yy = yy - 621
Else
a = a + 286
yy = yy - 622
End If
If (yy + 1) Mod 4 = 0 Then
a = a + 1
s_day(12) = 366
End If
For i = 1 To 12
If a < s_day(i) + 1 Then
Exit For
End If
Next
mm = i
If mm > 1 Then
dd = a - s_day(mm - 1)
Else
dd = a
End If
If mm = 13 Then
mm = 1
yy = yy + 1
End If
dim pdate as string
pdate = Wik(wd)&" "& dd & " " & mon(Mm-1) & " " & Yy
En2Fr=pdate
End Function
</script>

<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>novinweb.com</title>
</head>
<body topmargin="0" rightmargin="0" bottommargin="0" leftmargin="0">
تاریخ میلادی: <%=now()%>
<br>
تاریخ شمسی : <%=En2Fr(now())%>
</body>
</html>