تبديل تاريخ ميلادي به شمسي

FSystem

New Member
سلام!
شايد خيلي ديده باشيد كه توي يك فايل فلش ساعت به شكل هاي مختلف وجود داشته باشه اما تاريخ شمسي رو شايد تا حالا نديده باشيد يا كمتر ديده باشيد علتش هم وجود سال هاي كبيسه اي است كه تبديل تاريخ ميلادي به شمسي رو يكم مشكل كرده اما با كد زير ميشه به طوري دقيق و بدون اشكال تاريخ ميلادي رو به شمسي تبديل كرد:

*************************************************************************************************
PHP:
_root.onEnterFrame = function() {
    day_m = a.getUTCDay();
    d_m = a.getUTCDate();
    m_m = a.getUTCMonth();
    y_m = a.getUTCFullYear();
    _root.createTextField("s", 0, 3, 10, 900, 300);
    myTextFormat = new TextFormat();
    myTextFormat.font = "Tahoma";
    myTextFormat.color = 86420185;
    myTextFormat.size = 12;
    function showdate() {
        day_a = new Array("يكشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنج شنبه", "جمعه", "شنبه");
        month_a = new Array("فروردين", "ارديبهشت", "خرداد", "تير", "مرداد", "شهريور", "مهر", "آبان", "آذر", "دي", "بهمن", "اسفند");
        a = new Date();
        day_m = a.getDay();
        d_m = a.getDate();
        m_m = a.getMonth();
        m_m = m_m+1;
        y_m = a.getFullYear();
        y_m_b = y_m%4;
        y_m1 = y_m-622;
        y_m2 = y_m-621;
        if ((((y_m_b == 2) || (y_m_b == 3)) && ((m_m == 1) || (m_m == 2) || (m_m == 3)))) {
            if (m_m == 1 && d_m<=20) {
                d_sh = d_m+10;
                m_sh = month_a[9];
                y_sh = y_m1;
            } else if (m_m == 1 && d_m>=21) {
                d_sh = d_m-20;
                m_sh = month_a[10];
                y_sh = y_m1;
            }
            if (m_m == 2 && d_m<=19) {
                d_sh = d_m+11;
                m_sh = month_a[10];
                y_sh = y_m1;
            } else if (m_m == 2 && d_m>=20) {
                d_sh = d_m-19;
                m_sh = month_a[11];
                y_sh = y_m1;
            }
            if (m_m == 3 && d_m<=20) {
                d_sh = d_m+9;
                m_sh = month_a[11];
                y_sh = y_m1;
            } else if (m_m == 3 && d_m>=21) {
                d_sh = d_m-20;
                m_sh = month_a[0];
                y_sh = y_m2;
            }
        }
        if ((y_m_b == 1) && ((m_m == 1) || (m_m == 2) || (m_m == 3))) {
            if (m_m == 1 && d_m<=19) {
                d_sh = d_m+11;
                m_sh = month_a[9];
                y_sh = y_m1;
            } else if (m_m == 1 && d_m>=20) {
                d_sh = d_m-19;
                m_sh = month_a[10];
                y_sh = y_m1;
            }
            if (m_m == 2 && d_m<=18) {
                d_sh = d_m+12;
                m_sh = month_a[10];
                y_sh = y_m1;
            } else if (m_m == 2 && d_m>=19) {
                d_sh = d_m-18;
                m_sh = month_a[11];
                y_sh = y_m1;
            }
            if (m_m == 3 && d_m<=20) {
                d_sh = d_m+10;
                m_sh = month_a[11];
                y_sh = y_m1;
            } else if (m_m == 3 && d_m>=21) {
                d_sh = d_m-20;
                m_sh = month_a[0];
                y_sh = y_m2;
            }
        }
        if ((y_m_b != 0) && (m_m>=4)) {
            if (m_m == 4 && d_m<=20) {
                d_sh = d_m+11;
                m_sh = month_a[0];
                y_sh = y_m2;
            } else if (m_m == 4 && d_m>=21) {
                d_sh = d_m-20;
                m_sh = month_a[1];
                y_sh = y_m2;
            }
            if (m_m == 5 && d_m<=21) {
                d_sh = d_m+10;
                m_sh = month_a[1];
                y_sh = y_m2;
            } else if (m_m == 5 && d_m>=22) {
                d_sh = d_m-21;
                m_sh = month_a[2];
                y_sh = y_m2;
            }
            if (m_m == 6 && d_m<=21) {
                d_sh = d_m+10;
                m_sh = month_a[2];
                y_sh = y_m2;
            } else if (m_m == 6 && d_m>=22) {
                d_sh = d_m-21;
                m_sh = month_a[3];
                y_sh = y_m2;
            }
            if (m_m == 7 && d_m<=22) {
                d_sh = d_m+9;
                m_sh = month_a[3];
                y_sh = y_m2;
            } else if (m_m == 7 && d_m>=23) {
                d_sh = d_m-22;
                m_sh = month_a[4];
                y_sh = y_m2;
            }
            if (m_m == 8 && d_m<=22) {
                d_sh = d_m+9;
                m_sh = month_a[4];
                y_sh = y_m2;
            } else if (m_m == 8 && d_m>=23) {
                d_sh = d_m-22;
                m_sh = month_a[5];
                y_sh = y_m2;
            }
            if (m_m == 9 && d_m<=22) {
                d_sh = d_m+9;
                m_sh = month_a[5];
                y_sh = y_m2;
            } else if (m_m == 9 && d_m>=23) {
                d_sh = d_m-22;
                m_sh = month_a[6];
                y_sh = y_m2;
            }
            if (m_m == 10 && d_m<=22) {
                d_sh = d_m+8;
                m_sh = month_a[6];
                y_sh = y_m2;
            } else if (m_m == 10 && d_m>=23) {
                d_sh = d_m-22;
                m_sh = month_a[7];
                y_sh = y_m2;
            }
            if (m_m == 11 && d_m<=21) {
                d_sh = d_m+9;
                m_sh = month_a[7];
                y_sh = y_m2;
            } else if (m_m == 11 && d_m>=22) {
                d_sh = d_m-21;
                m_sh = month_a[8];
                y_sh = y_m2;
            }
            if (m_m == 12 && d_m<=21) {
                d_sh = d_m+9;
                m_sh = month_a[8];
                y_sh = y_m2;
            } else if (m_m == 12 && d_m>=22) {
                d_sh = d_m-21;
                m_sh = month_a[9];
                y_sh = y_m2;
            }
        }
        if (y_m_b == 0) {
            if (m_m == 1 && d_m<=20) {
                d_sh = d_m+10;
                m_sh = month_a[9];
                y_sh = y_m1;
            } else if (m_m == 1 && d_m>=21) {
                d_sh = d_m-20;
                m_sh = month_a[10];
                y_sh = y_m1;
            }
            if (m_m == 2 && d_m<=19) {
                d_sh = d_m+11;
                m_sh = month_a[10];
                y_sh = y_m1;
            } else if (m_m == 2 && d_m>=20) {
                d_sh = d_m-19;
                m_sh = month_a[11];
                y_sh = y_m1;
            }
            if (m_m == 3 && d_m<=19) {
                d_sh = d_m+10;
                m_sh = month_a[11];
                y_sh = y_m1;
            } else if (m_m == 3 && d_m == 20) {
                d_sh = 1;
                m_sh = month_a[0];
                y_sh = y_m2;
            } else if (m_m == 3 && d_m>=21) {
                d_sh = d_m-19;
                m_sh = month_a[0];
                y_sh = y_m2;
            }
            if (m_m == 4 && d_m<=19) {
                d_sh = d_m+12;
                m_sh = month_a[0];
                y_sh = y_m2;
            } else if (m_m == 4 && d_m>=20) {
                d_sh = d_m-19;
                m_sh = month_a[1];
                y_sh = y_m2;
            }
            if (m_m == 5 && d_m<=20) {
                d_sh = d_m+11;
                m_sh = month_a[1];
                y_sh = y_m2;
            } else if (m_m == 5 && d_m>=21) {
                d_sh = d_m-20;
                m_sh = month_a[2];
                y_sh = y_m2;
            }
            if (m_m == 6 && d_m<=20) {
                d_sh = d_m+11;
                m_sh = month_a[2];
                y_sh = y_m2;
            } else if (m_m == 6 && d_m>=21) {
                d_sh = d_m-20;
                m_sh = month_a[3];
                y_sh = y_m2;
            }
            if (m_m == 7 && d_m<=21) {
                d_sh = d_m+10;
                m_sh = month_a[3];
                y_sh = y_m2;
            } else if (m_m == 7 && d_m>=22) {
                d_sh = d_m-21;
                m_sh = month_a[4];
                y_sh = y_m2;
            }
            if (m_m == 8 && d_m<=21) {
                d_sh = d_m+10;
                m_sh = month_a[4];
                y_sh = y_m2;
            } else if (m_m == 8 && d_m>=22) {
                d_sh = d_m-21;
                m_sh = month_a[5];
                y_sh = y_m2;
            }
            if (m_m == 9 && d_m<=21) {
                d_sh = d_m+10;
                m_sh = month_a[5];
                y_sh = y_m2;
            } else if (m_m == 9 && d_m>=22) {
                d_sh = d_m-21;
                m_sh = month_a[6];
                y_sh = y_m2;
            }
            if (m_m == 10 && d_m<=21) {
                d_sh = d_m+9;
                m_sh = month_a[6];
                y_sh = y_m2;
            } else if (m_m == 10 && d_m>=22) {
                d_sh = d_m-21;
                m_sh = month_a[7];
                y_sh = y_m2;
            }
            if (m_m == 11 && d_m<=20) {
                d_sh = d_m+10;
                m_sh = month_a[7];
                y_sh = y_m2;
            } else if (m_m == 11 && d_m>=21) {
                d_sh = d_m-20;
                m_sh = month_a[8];
                y_sh = y_m2;
            }
            if (m_m == 12 && d_m<=20) {
                d_sh = d_m+10;
                m_sh = month_a[8];
                y_sh = y_m2;
            } else if (m_m == 12 && d_m>=21) {
                d_sh = d_m-20;
                m_sh = month_a[9];
                y_sh = y_m2;
            }
        }
        s.text = "امروز"+" "+day_a[day_m]+" "+d_sh+" "+m_sh+" "+y_sh;
        s.type = "dynamic";
        s.selectable = false;
        s.setTextFormat(myTextFormat);
    }
    showdate();
};
*****************************************************************************************
 
آخرین ویرایش توسط مدیر:

kiarash.M

Active Member
دوست من این همه if وااسه چی
فکنم array سالهاست اختراع شده ...:)
 

Avang2005

مدیر انجمن
سلام دوست من

فكر كنم يه 10000 خط برنامه نويسي شده :d

جالب بود

موفق باشيد
 

mshgames

Well-Known Member
سلام
FSystem
دوست من کارت عالی بود با امکانات کم (کد نویسی) درسته تعداد دستورات زیاده اما فکرت حرف نداشت
موفق باشی
محمد
 

FSystem

New Member
به قول دوستان از راه هاي كوتاه تري هم ميشه اين كار رو كرد ولي به نظر من اين كد از بقيه ساده تر و قابل فهم تره....
ضمن تشكر از همه!
 

kiarash.M

Active Member
دوست من من اصلا نیموخام ناراحتت کنم
ولی بدون که تو کار بااستفاده از ریاضیات و استفاده صحیح از Array میتونستی تو 30 خط تمومش کنی
من یه کلاس Open Source گذاشتم تو قسمت تاپیک های مهم برعکس این کا رو هم انجام میده .
خوایتی بگی نگاش کن
موفق . پیروز باشی :)
 

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

بالا