امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
تاریخ خورشیدی
نویسنده پیام
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #1
تاریخ خورشیدی
این کد دارای 2 تابع برای تبدیل تاریخ میلادی به خورشیدی و خورشیدی به میلادی هست که برای وب پارسی خیلی کاربرد داره

کد:
<!doctype html>
<!-- coded by lord_viper -->
<head>
<script>
function IsLeapYear(year){
        if (((year % 4) == 0 && (year % 100) != 0) || ((year % 400) == 0) && (year % 100) == 0)
            return true;
        else
            return false;
}
/*
*  PERSIAN TO GEORGIAN
*/
function persian_to_gregorian(jy, jm, jd){
var gd;

j_days_sum_month = [31,62,93,124,155,186,216,246,276,306,336,365];
g_days_in_month = [31,28,31,30,31,30,31,31,30,31,30,31];
g_days_leap_month = [31,29,31,30,31,30,31,31,30,31,30,31];
gd = parseInt(j_days_sum_month[jm - 2]) + parseInt(jd);

        gy = parseInt(jy) + 621;
        
        if (gd > 286)
            gy++;
        if (IsLeapYear(gy - 1) && 286 < gd)
            gd--;
        if (gd > 286)
            gd -= 286;
        else
            gd += 79;
        if (IsLeapYear(gy))
        {
            for (gm = 0; gd > g_days_leap_month[gm]; gm++)
            {
                gd -= g_days_leap_month[gm];
            }
        }
        else
        {
            for (gm = 0; gd > g_days_in_month[gm]; gm++)
                gd -= g_days_in_month[gm];
        }
        gm++;
        return [gy,gm,gd];
}
/*
*  GEORGIAN TO PERSIAN
*/
function gregorian_to_persian(gy, gm, gd){

j_days_in_month = [31,31,31,31,31,31,30,30,30,30,30,29];
g_days_sum_month = [31,59,90,120,151,181,212,243,273,304,334,365];
dayofyear = parseInt(g_days_sum_month[gm - 2]) + parseInt(gd);

        if (dayofyear > 79)
        {
            jd = dayofyear - 79;
            jy = gy - 621;
            for (i = 0; jd > j_days_in_month[i]; i++)
                jd -= j_days_in_month[i];
        } else
        {
            leap = (gy - 1) % 4;
            if(leap == 0){
               jd = 287 + dayofyear;
               }
            else{
               jd = 286 + dayofyear;
               }

            jy = gy - 622;
            if (leap == 0 && jd == 366)
                return [jy,12,30];
            for (i = 0; jd > j_days_in_month[i]; i++)
                jd -= j_days_in_month[i];
        }
        jm = ++i;
        return [jy,jm,jd];
}
</script>
  </head>
  <body>
        <script>
           alert(gregorian_to_persian('2013', '5', '1')[0]);
        </script>
    
  </body>
</html>

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۱۱-اردیبهشت-۱۳۹۲, ۱۸:۴۷:۵۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : aKaReZa75, orange signal, saeedsmk, babyy


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  اسکریپت تاریخ روز dead.kitten 0 4,123 ۲۷-شهریور-۱۳۸۸, ۱۱:۳۵:۱۵
آخرین ارسال: dead.kitten

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS