اطلاعیه

Collapse
No announcement yet.

تبدیل میلادی به شمسی

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تبدیل میلادی به شمسی

    سلام من یک سوال در مورد ترتیب سالهای کبیسه دارم: ایا فاصله تمام سالهای کبیسه 4 سال هستش یا در دوره های طولانی 5 سال هم میشه؟ من یه برنامه نوشتم که سالهای کبیسه رو با ترتیب 4 سال محاسبه می کنه ولی تووی لینک زیر تا سال 1403 شمسی کبیسه ها 4 سال یه بار هستند ولی بعد از اون ترتیبشون به هم خورده . کسی می تونه کمکم کنه ببینم بالاخره برنامه من درسته یه تقویم لینک زیر: :nerd:
    http://payvand.com/calendar/
    اگر ندانی کجا میروی هر راهی تو را باخود خواهد برد.

    #2
    پاسخ : تبدیل میلادی به شمسی

    سلام . ببخشید جسارتا میتونم بپرسم
    سال کبیسه چه ربطی به avr داره؟
    منظورم اینه که برنامه خاصی دارید می نوسید که
    به این مشکل برخوردید؟
    oo:
    من شکوفایی گلهای امیدم را در رویاها می بینم ,
    و ندایی که به من می گوید , گر چه شب تاریک است ,دل قوی دار سحر نزدیک است .

    دیدگاه


      #3
      پاسخ : تبدیل میلادی به شمسی

      بله برنامه من تبدیل تاریخ rtc به شمسی هستش. ولی سوال من بیشتر در مورد اینه که ایا سالهای کبیسه همیشه 4 سال یه بار هستن یا اینکه مثل لینک بالا بعضی وقتا ترتیبشون به هم می خوره؟
      اگر ندانی کجا میروی هر راهی تو را باخود خواهد برد.

      دیدگاه


        #4
        پاسخ : تبدیل میلادی به شمسی

        اینم تابع تبدیل:
        void shamsi(){
        char L1[33];
        int dd,mm,yy,md=0,kb=0;
        int month[13]={{0,10,11,9,11,10,10,9,9,9,8,9,9};
        int mah[13]={31,31,31,31,31,31,31,30,30,30,30,30,29};
        rtc_get_date(&f,&g,&q);
        if((q%4==0)&(g>2)) kb=1;
        if((q%4==1)&(g<=3)) kb=1;
        dd=f+month [g]+kb;
        mm=g+9;yy=q+1378;
        if(mm>12) {mm-=12;yy++;}
        if(yy%4==3) {mah[12]=30;}
        if(dd>mah[mm]) {dd-=mah[mm];mm++;if(mm>12) {mm-=12;yy++;}}
        sprintf(L1," %d/%02d/%02d",yy,mm,dd);
        lcd_puts(L1);
        }
        اگر ندانی کجا میروی هر راهی تو را باخود خواهد برد.

        دیدگاه


          #5
          پاسخ : تبدیل میلادی به شمسی

          هر 32 سال یک سال عقب میوفته
          یعنی چرخه اون هر 33 سال 8 کبیسه هست
          یعنی دوره آخر بجای 4 سال میشه 5 سال.
          الهم عجل لولیک الفرج

          دیدگاه


            #6
            پاسخ : تبدیل میلادی به شمسی

            سالهای میلادی هم 100 سال 100 سال , اونایی که به 400 بخش پذیز نیست , کبیسه نداره.
            مثلا سال 2100 کبیسه نیست و این دوره 8 ساله میشه.
            الهم عجل لولیک الفرج

            دیدگاه


              #7
              پاسخ : تبدیل میلادی به شمسی

              ممنون ولی میشه بگین منبع اطلاعاتتون کجاست؟ و دلیل اینکه هر 32 سال فاصله کبیسه شمسی 5 سال میشه چیه؟
              و سالهای 2004 و 2008 و 2012 و ... تا 2400 به 400 بخش پذیر نیستن ولی سالهای کبیسه هستند.
              سال 2400 که به 400 تقسیم پذیر هست هم کبیسه نیست؟
              اگر ندانی کجا میروی هر راهی تو را باخود خواهد برد.

              دیدگاه


                #8
                پاسخ : تبدیل میلادی به شمسی

                منبعش رو یادم نیست.
                چند سال پیش برای این تقویم یه دی ال ال مینوشتم , اون موقع دنبالش بودم , الان یادم نیست از کجا.
                اما تو همین تقویمی که معرفی کردید (همین سایته) هم که نگاه کنی , همینطوره
                به جای سال 1407 , سال 1408 کبیسه هست.
                33 سال بعدش هم کبیسه هستش.(بجای 32 سال بعدش).

                در مورد سالهای میلادی هم شما حرف منو درست توجه نکردی
                سالهای میلادی هم 100 سال 100 سال , اونایی که به 400 بخش پذیز نیست , کبیسه نداره.
                مثلا سال 2100 کبیسه نیست و این دوره 8 ساله میشه.
                اگه ببینی نوشتم 100 سال 100 سال
                یعنی سالهایی که به 100 بخش پذیره ولی به 400 بخش پذیر نیست.
                الهم عجل لولیک الفرج

                دیدگاه


                  #9
                  پاسخ : تبدیل میلادی به شمسی

                  از راهنماییتون ممنونم. :agree: در مورد سالهای کبیسه میلادی هم من عجله کردم :redface: وخوب متوجه نشده بودم.
                  اگر ندانی کجا میروی هر راهی تو را باخود خواهد برد.

                  دیدگاه

                  لطفا صبر کنید...
                  X