تاريخ شمسي

samsalek

Member
اين نيست ولي...

سلام
من ASP رو ندارم ولي شايد اين موقتا كارتو راه بندازه:


کد:
<html><head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256"> 
<META NAME="Language" CONTENT="fa"> 
<script> 
function showdate() { 
week= new Array("يكشنبه","دوشنبه","سه شنبه","چهارشنبه","پنج شنبه","جمعه","شنبه") 
months = new Array("فروردين","ارديبهشت","خرداد","تير","مرداد","شهريور","مهر","آبان","آذر","دي","بهمن","اسفند"); 
a = new Date(); 
d= a.getDay(); 
day= a.getDate(); 
month = a.getMonth()+1; 
year= a.getYear(); 
year = (year== 0)?2000:year; 
(year<1000)? (year += 2000):true; 
year -= ( (month < 3) || ((month == 3) && (day < 21)) )? 622:621; 
switch (month) { 
case 1: (day<21)? (month=10, day+=10):(month=11, day-=20); break; 
case 2: (day<20)? (month=11, day+=11):(month=12, day-=19); break; 
case 3: (day<21)? (month=12, day+=9):(month=1, day-=20); break; 
case 4: (day<21)? (month=1, day+=11):(month=2, day-=20); break; 
case 5: 
case 6: (day<22)? (month-=3, day+=10):(month-=2, day-=21); break; 
case 7: 
case 8: 
case 9: (day<23)? (month-=3, day+=9):(month-=2, day-=22); break; 
case 10:(day<23)? (month=7, day+=8):(month=8, day-=22); break; 
case 11: 
case 12:(day<22)? (month-=3, day+=9):(month-=2, day-=21); break; 
default: break; 
} 
document.write("امروز: "+week[d]+" "+day+" "+months[month-1]+" "+ year); 
} 
</script> 
</head> 
<body> 
<script>showdate()</script> 
</body> 
</html>

موفق باشي :wink:
 

pirooz

Member
بيا عزيز جان. اين هم كد تبديل تاريخ ميلادي به شمسي با احتساب سال كبيسه و از اين حرفها.
برگرفته از سايت آي. تي. شيراز.

[align=left:f4b3bb466c]
کد:
<%
D = Array (20, 19, 20, 20, 21, 21, 22, 22, 22, 22, 21, 21)
P = Array (11, 12, 10, 12, 11, 11, 10, 10, 10, 9, 10, 10)
W = Array ("يکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه")
Mon = Array ("فروردين", "ارديبهشت", "خرداد", "تير", "مرداد", "شهريور", "مهر", "آبان", "آذر", "دي", "بهمن", "اسفند")
Dm = Day(Date)
Mm = Month(Date)
Ym = Year(Date)
U = 0 
Rp = 0
If (Ym Mod 4) = 0 Then U = 1
If ((Ym Mod 100) = 0 AND (Ym Mod 400) <> 0) Then U = 0
Ys = Ym - 622
X = Ys - 22
X = X Mod 33
If ((X Mod 4) = 0 AND X <> 32) Then Rp = 1
I = Not(Rp-2) + NOT(U - 2) * 2
X = 0
If (I = 0 AND Mm = 3) Then X = 1
If I = 0 Then I = 3
Ms = (9 + Mm) Mod 13
If Ms < 10 Then Ms = Ms + 1
D1 = D(Mm - 1)
If (I = 1 AND Mm > 2) Then D1 = D1 - 1
If (I = 2 AND Mm < 3) then D1 = D1 - 1
P1 = P(Mm - 1)
If (I = 1 AND Mm > 2) Then P1 = P1 + 1
If (I = 2 AND Mm < 4) Then P1 = P1 + 1
If (Dm > 0 AND Dm <= D1) Then
Ds = P1 + Dm + X - 1
X = 1
Else
Ds = Dm - D1
Ms = Ms + 1
If Ms = 13 Then Ms = 1
X = 2
End If
If ((Mm = 3 AND X = 2) OR Mm > 3) Then Ys = Ys + 1
DateShamsi = Ds & " " & Mon(Ms - 1) & " " & Ys
rooz = W(WeekDay(Date) - 1)
%>
[/align:f4b3bb466c]
 

pedramr

Active Member
اين هم از اين ..

کد:
<META http-equiv=CONTENT-TYPE content="text/html; charset=windows-1256">
    <%
    D = Array (20, 19, 20, 20, 21, 21, 22, 22, 22, 22, 21, 21)
    P = Array (11, 12, 10, 12, 11, 11, 10, 10, 10, 9, 10, 10)
    U = 0 
    Rp = 0
    wDays = Array ("يكشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه")
    Months = Array ("فروردين", "ارديبهشت", "خرداد", "تير", "مرداد", "شهريور", "مهر", "آبان", "آذر", "دي", "بهمن", "اسفند")
    myDay = Day(Date)
    myMonth = Month(Date)
    myYear = Year(Date)
    if (myYear Mod 4) = 0 Then U = 1
    if ((myYear Mod 100) = 0 AND (myYear Mod 400) <> 0) Then U = 0
    Ys = myYear - 622
    X = Ys - 22
    X = X Mod 33
    if ((X Mod 4) = 0 AND X <> 32) Then Rp = 1
    I = Not(Rp-2) + NOT(U - 2) * 2
    X = 0
    if (I = 0 AND myMonth = 3) Then X = 1
    if I = 0 Then I = 3
    Ms = (9 + myMonth) Mod 13
    if Ms < 10 Then Ms = Ms + 1
    D1 = D(myMonth - 1)
    if (I = 1 AND myMonth > 2) Then D1 = D1 - 1
    if (I = 2 AND myMonth < 3) Then D1 = D1 - 1
    P1 = P(myMonth - 1)
    if (I = 1 AND myMonth > 2) Then P1 = P1 + 1
    if (I = 2 AND myMonth < 4) Then P1 = P1 + 1
    if (myDay > 0 AND myDay <= D1) Then
    Ds = P1 + myDay + X - 1
    X = 1
    Else
    Ds = myDay - D1
    Ms = Ms + 1
    if Ms = 13 Then Ms = 1
    X = 2
    End if
    if ((myMonth = 3 AND X = 2) OR myMonth > 3) Then Ys = Ys + 1
    Farsi_Date = wDays(WeekDay(Date) - 1) & " " & Ds & " " & Months(Ms - 1) & " " & Ys
%>
<%= Farsi_date%>
 
Re: اين هم از اين ..

pedramr گفت:
کد:
<META http-equiv=CONTENT-TYPE content="text/html; charset=windows-1256">
    <%
    D = Array (20, 19, 20, 20, 21, 21, 22, 22, 22, 22, 21, 21)
    P = Array (11, 12, 10, 12, 11, 11, 10, 10, 10, 9, 10, 10)
    U = 0 
    Rp = 0
    wDays = Array ("يكشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه")
    Months = Array ("فروردين", "ارديبهشت", "خرداد", "تير", "مرداد", "شهريور", "مهر", "آبان", "آذر", "دي", "بهمن", "اسفند")
    myDay = Day(Date)
    myMonth = Month(Date)
    myYear = Year(Date)
    if (myYear Mod 4) = 0 Then U = 1
    if ((myYear Mod 100) = 0 AND (myYear Mod 400) <> 0) Then U = 0
    Ys = myYear - 622
    X = Ys - 22
    X = X Mod 33
    if ((X Mod 4) = 0 AND X <> 32) Then Rp = 1
    I = Not(Rp-2) + NOT(U - 2) * 2
    X = 0
    if (I = 0 AND myMonth = 3) Then X = 1
    if I = 0 Then I = 3
    Ms = (9 + myMonth) Mod 13
    if Ms < 10 Then Ms = Ms + 1
    D1 = D(myMonth - 1)
    if (I = 1 AND myMonth > 2) Then D1 = D1 - 1
    if (I = 2 AND myMonth < 3) Then D1 = D1 - 1
    P1 = P(myMonth - 1)
    if (I = 1 AND myMonth > 2) Then P1 = P1 + 1
    if (I = 2 AND myMonth < 4) Then P1 = P1 + 1
    if (myDay > 0 AND myDay <= D1) Then
    Ds = P1 + myDay + X - 1
    X = 1
    Else
    Ds = myDay - D1
    Ms = Ms + 1
    if Ms = 13 Then Ms = 1
    X = 2
    End if
    if ((myMonth = 3 AND X = 2) OR myMonth > 3) Then Ys = Ys + 1
    Farsi_Date = wDays(WeekDay(Date) - 1) & " " & Ds & " " & Months(Ms - 1) & " " & Ys
%>
<%= Farsi_date%>


I = Not(Rp-2) + NOT(U - 2) * 2 چي كار مي كنه؟
 

omidak

Active Member
سلام:
اين هم نمونه اي از ASP.Net:
کد:
    Public Function ConvertToIranDate(ByRef TheDate As Date) As Date
        Dim iFYear, iFDay, iFMonth, iFDayOfYear As Object
        Dim iYear, iDayOfYear As Object
        Dim iNumDayOfYear As Object
        Dim aIFMonthDays As Object
        aIFMonthDays = New Object() {31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29}
        iNumDayOfYear = 365
        iYear = Year(TheDate)
        iDayOfYear = DatePart(Microsoft.VisualBasic.DateInterval.DayOfYear, TheDate)
        If Date.IsLeapYear(iYear - 1) Then
            iNumDayOfYear = 366
            aIFMonthDays(11) = 30
        End If
        If (iDayOfYear > 79) Then
            iFYear = iYear - 621
            iFDayOfYear = iDayOfYear - 79
        Else
            iFYear = iYear - 622
            iFDayOfYear = (iNumDayOfYear - 79) + iDayOfYear
        End If
        iFDay = iFDayOfYear
        While (iFDay > aIFMonthDays(iFMonth))
            iFDay = iFDay - aIFMonthDays(iFMonth)
            iFMonth = iFMonth + 1
        End While
        iFMonth = iFMonth + 1
        Return Now.Parse(DateAndTime.DateSerial(iFYear, iFMonth, iFDay) & " " & TimeValue(TheDate))
    End Function
 
omidak گفت:
سلام:
اين هم نمونه اي از ASP.Net:
کد:
    Public Function ConvertToIranDate(ByRef TheDate As Date) As Date
        Dim iFYear, iFDay, iFMonth, iFDayOfYear As Object
        Dim iYear, iDayOfYear As Object
        Dim iNumDayOfYear As Object
        Dim aIFMonthDays As Object
        aIFMonthDays = New Object() {31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29}
        iNumDayOfYear = 365
        iYear = Year(TheDate)
        iDayOfYear = DatePart(Microsoft.VisualBasic.DateInterval.DayOfYear, TheDate)
        If Date.IsLeapYear(iYear - 1) Then
            iNumDayOfYear = 366
            aIFMonthDays(11) = 30
        End If
        If (iDayOfYear > 79) Then
            iFYear = iYear - 621
            iFDayOfYear = iDayOfYear - 79
        Else
            iFYear = iYear - 622
            iFDayOfYear = (iNumDayOfYear - 79) + iDayOfYear
        End If
        iFDay = iFDayOfYear
        While (iFDay > aIFMonthDays(iFMonth))
            iFDay = iFDay - aIFMonthDays(iFMonth)
            iFMonth = iFMonth + 1
        End While
        iFMonth = iFMonth + 1
        Return Now.Parse(DateAndTime.DateSerial(iFYear, iFMonth, iFDay) & " " & TimeValue(TheDate))
    End Function






كسي نمي دونه I = Not(Rp-2) + NOT(U - 2) * 2 چي كار مي كنه؟
 

جدیدترین ارسال ها

بالا