بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

متد دریافت تاریخ شمسی

مدیریت گفتگو
یزدانی 12 سال پیش
آخرین تغییر: 9 سال پیش

سلام دوستان عزیز من واسه دریافت تاریخ شمسی تو سایت جستجو کردم اما متاسفانه کد هایی که پیدا کردم مشکلاتی داشتن تو قسمت روز و ماه با یه جستجو تو سایت های دیگه چند تا کد پیدا کردم که هرکدوم یه مشکلی داشت از هرکدوم قسمت های درستشو جدا کردم کد سالم رو نوشتم !

گفتم اینجا بزارم تا دیگر دوستان هم استفاده کنند !

لطفا برای تشکر از ستاره استفاده کنید!

برای استفاده از این کد فقط کافیه صداش کنید! :D

 public static String Shamsi_Date() {

        Calendar cal = Calendar.getInstance();
        int Day = cal.get(Calendar.DAY_OF_MONTH);
        int Month = cal.get(Calendar.MONTH) + 1;
        int Year = cal.get(Calendar.YEAR);
        int Day_Of_Year = cal.get(Calendar.DAY_OF_YEAR);

        //---------------------------------------------

        if (Day_Of_Year <= 80)
            Year -= 622;
        else
            Year -= 621;

        switch (Month) {
            case 1:
                if (Day < 21)
                {
                    Month = 10;
                    Day += 10;
                }
                else
                {
                    Month = 11;
                    Day -= 20;
                }
                break;

            case 2:
                if (Day < 20)
                {
                    Month = 11;
                    Day += 11;
                }
                else
                {
                    Month = 12;
                    Day -= 19;
                }
                break;

            case 3:
                if (Day < 21)
                {
                    Month = 12;
                    Day += 9;
                }
                else
                {
                    Month = 1;
                    Day -= 20;
                }
                break;

            case 4:
                if (Day < 21)
                {
                    Month = 1;
                    Day += 11;
                }
                else
                {
                    Month = 2;
                    Day -= 20;
                }
                break;

            case 5:
            case 6:
                if (Day < 22)
                {
                    Month -= 3;
                    Day += 10;
                }
                else
                {
                    Month -= 2;
                    Day -= 21;
                }
                break;

            case 7:
            case 8:
            case 9:
                if (Day < 23)
                {
                    Month -= 3;
                    Day += 9;
                }
                else
                {
                    Month -= 2;
                    Day -= 22;
                }
                break;

            case 10:
                if (Day < 23)
                {
                    Month = 7;
                    Day += 8;
                }
                else
                {
                    Month = 8;
                    Day -= 22;
                }
                break;

            case 11:
            case 12:
                if (Day < 22)
                {
                    Month -= 3;
                    Day += 9;
                }
                else
                {
                    Month -= 2;
                    Day -= 21;
                }
                break;
        }
        return String.valueOf(Year) + "/" + String.valueOf(Month) + "/" + String.valueOf(Day);

    }

 

 

نظرات

sadeghbarout 12 سال پیش
با تشکر از شما که اطلاعاتتون رو با دوستان درمیون میذارید ولی این کد هم اشکالاتی داده. مثلا تاریخ 2014/1/25 رو درست تبدیل نمیکنه. شما میتونید برای صحت عملکرد کدتون، اون رو با سایت رسمیtime.ir یا موسسه ژئوفیزیک تهران چک کنید. نمیخوام نا امیدتون کنم ولی فرآیند تبدیل تاریخ(اگه بخواید دقیق کار کنید) کمی پیچیده تر از این حرفهاست که بشه با همین چند خط کد درستش کرد. ;)
یزدانی 12 سال پیش
سلام دوست عزیز درسته این کد، کد کاملی نیست ولی خوب کار راه اندازه این تاریخی که شما دادید من تست کردم تو سایت time.ir تاریخ 5/11/92 نشون میده و این دقیقا همون چیزیه که با این کد تو گوشی نمایش میده و مشکلی نداره ! !
sadeghbarout 12 سال پیش
والا اون موقع که من تست کردم ، 92/11/9 نشون میداد. حالا بعدا باید دوباره تست کنم :)
احسان منصوری 12 سال پیش
سلام. متاسفانه من نتونستم ازش استفاده کنم. میشه نحوه فراخوانیش رو توضیح بدین؟ احتمالا جایی اشتباه کردم

هنوز پاسخی ثبت نشده است


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .