اطلاعیه

Collapse
No announcement yet.

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

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

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

    از دوستان کسی برای تبدیل تاریخ شمسی به میلادی الگوریتمی داره؟
    چه دعایی کنمت بهترازاین ،که کنار پسر فاطمه هنگام اذان ، سحر جمعه ای پشت دیوار بقیع قامتت قد بکشد در دو رکعت به نمازی که نثار حرم و گنبد برپا شده ی حضرت زهرا بکنی ... انشاالله

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

    یه تقویم بذار جلوت الگوریتمش به دستت می آید.
    مثلا اول مرداد میشه بیست و دوم جولای یعنی 22/7 پس باید دو تا به ماه شمسی اضافه کنی تا ماه میلادی به دست بیاد. اما از دوازدهم مرداد دیگه باید سه تا ماه شمسی اضافه کنی تا ماه میلادی به دست بیاد.
    توضیحش مشکله اما عملش خیلی ساده است. چون ماه های شمسی و میلادی نسبت به هم ثابت هستن و مثل ماه های قمری نیستن...
    عمر گران میگذرد خواهی نخواهی سعی بر آن کن نرود رو به تباهی
    مطلب دل را طلب از سوی خدا کن زآنکه بود رحمت او لا یتناهی

    دیدگاه


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

      متاسفانه با روشی که شما گفتین به خاطر سالهای کبیسه به یک فرمول مشخصی نمیرسیم سال 87 روز 22 جولای با 1 مرداد برخورد میکنه ولی تو سال 86 روز 23 جولای مصادف با 1 مرداد میشه
      چه دعایی کنمت بهترازاین ،که کنار پسر فاطمه هنگام اذان ، سحر جمعه ای پشت دیوار بقیع قامتت قد بکشد در دو رکعت به نمازی که نثار حرم و گنبد برپا شده ی حضرت زهرا بکنی ... انشاالله

      دیدگاه


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

        با سلام
        پیادهآ‌سازی این تبدیل با ANSI C در http://www.farsiweb.info/jalali/jalali.c
        منبع: http://www.farsiweb.ir/wiki/Iranian_Calendar
        من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

        دیدگاه


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

          درود
          manian واقعا دستت درد نکنه
          خیلی به دردم خورد
          با GPL بودنشم خیلی حال کردم :nice:

          راحت هم کامپایل شد
          من اینطوری کامپایلش کردم
          کد:
          gcc cal.c -o cal -Wall

          اینم جوابش :
          چگونه هوشمندانه بپرسیم

          دیدگاه


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

            اگه تو همین سایت هم سرچ کنی میتونی یک پروژه با زبان سی پیدا کنی
            " علت هر شكستي عمل كردن بدون فكر است" الكس مكنزي


            [move](---> موسیقی ایرانی <---) [/move]

            دیدگاه


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

              با سلام خدمت همه دوستان

              این قضیه gpl رو میشه یه کم توضیح بدین چیه ، کیه ، چی کار میکنه ؟ :mrgreen: oo:
              من با بیسکام کار میکنم و تو تبدیل برنامه در مورد خط زیر نمیدونم چی کار باید بکنم در حقیقت اصلا نمی دونم عبارت i==1 && leap یعنی چی ؟ :eek: چون این عبارت تو حلقه for نوشته شده متغیر i تکلیفش چی میشه؟ ممنون میشم راهنماییم کنید

              ( ++ for (i=0 ; g_day_no>= g_days_in_month[i] + ( i== 1 && leap ) ; i
              (g_day_no - = g_days_in_month[i] + ( i== 1 && leap
              چه دعایی کنمت بهترازاین ،که کنار پسر فاطمه هنگام اذان ، سحر جمعه ای پشت دیوار بقیع قامتت قد بکشد در دو رکعت به نمازی که نثار حرم و گنبد برپا شده ی حضرت زهرا بکنی ... انشاالله

              دیدگاه


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

                نوشته اصلی توسط mikla
                با سلام خدمت همه دوستان

                این قضیه gpl رو میشه یه کم توضیح بدین چیه ، کیه ، چی کار میکنه ؟ :mrgreen: oo:
                GPL که مخفف GNU General Public License هست در اصل یه مجوز برای انتشار برنامه هاست
                که مثلا اکثر برنامه هایی که برای لینوکس نوشته میشه تحت این مجوزه

                شما در استفاده از برنامه ای که تحت این مجوز منتشر شده کاملا آزادی
                و حتی میتونی اونارو بنا به نیاز خودت ویرایش کنی و دوباره منتشرش کنی. البته تو هم باید اونو تحت GPL منتشر کنی

                بعنوان مثال کامپایلر محبوب gcc که برای AVR , ARM , ... هم پورت شده تحت GPL منتشر شده
                و شما برای استفاده کامل از اون مجبور بهآ‌ Crack ( زبونم لال ) اون نیستی
                و خیلی برنامه ها و سورس کدهای دیگه. مثل همین تقویم

                در مقدمه پروانه این مجوز تصریح شده که قصد GPL دفاع از آزادیهای برنامهآ‌نویسان، توسعهآ‌دهندگان و کاربران است
                ( البته به قول لینوس توروالدز متن حقوقی GPL زیاد محبت آمیز نیست. چون بالاخره یه متن حقوقیه دیگه )

                برای اطلاعات بیشتر هم اگه دوست داشتی اینارو بخون :
                http://www.kaveh.org/gnu/gpl-fa.html
                http://www.irantux.org/html/modules.php?op=modload&name=Sections&file= index&req=viewarticle&artid=23
                http://www.irantux.org/html/modules.php?op=modload&name=Sections&file= index&req=viewarticle&artid=68

                ( ببخشید که زیاد احساساتی شدم ، چون وقتی حرف GNU/Linux و اینا میاد وسط من یه نمور دست و پامو گم میکنم :icon_razz: )

                نوشته اصلی توسط mikla
                من با بیسکام کار میکنم و تو تبدیل برنامه در مورد خط زیر نمیدونم چی کار باید بکنم در حقیقت اصلا نمی دونم عبارت i==1 && leap یعنی چی ؟ :eek: چون این عبارت تو حلقه for نوشته شده متغیر i تکلیفش چی میشه؟ ممنون میشم راهنماییم کنید

                ( ++ for (i=0 ; g_day_no>= g_days_in_month[i] + ( i== 1 && leap ) ; i
                (g_day_no - = g_days_in_month[i] + ( i== 1 && leap
                راستشو بخواین منم دقیقا نمی دونم اون For چه کار خاصی رو انجام میده

                ولی نتیجه عملگر && وقتی درسته که هر دو تا عملوند که در اینجا 1 و Leap هستن دارای ارزش درستی باشن
                چون 1 همیشه ارزش درستیه پس هر موقع Leap دارای ارزش درستی باشه ، عملگر && هم ارزش درستی رو برمیگردونه
                منظور از ارزش درست یعنی 1 و نادرست هم یعنی صفر

                عملگر == هم وقتی ارزش درست برمیگردونه که مقدار دو تا عملوندش با هم مساوی باشن
                مثلا در اینجا هر موقع مقدار یا ارزش i برابر ارزش 1 && leap باشه ، ارزش درست برگردونده میشه ( یعنی همون یک )

                حالا دیگه بقیشو خودت میدونی ، البته خوشحال میشم بتونم بیشتر کمک کنم
                امیدوارم موفق شی پورتش کنی
                راستی اگه تونستی پورتش کنی تحت GPL منتشرش کن
                چگونه هوشمندانه بپرسیم

                دیدگاه


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

                  سلام خدمت همه دوستان متاسفانه من هنوز نتونستم یک الگوریتم درست برای تبدیل تاریخ شمسی به میلادی پیدا کنم برانامه ای هم که manian عزیز گزاشتن رو هم تو بیسکام تبدیل کردم ولی جواب درست نگرفتم اگه دوستان بتونن راهنمایی کنن ممنون میشم :cry:
                  چه دعایی کنمت بهترازاین ،که کنار پسر فاطمه هنگام اذان ، سحر جمعه ای پشت دیوار بقیع قامتت قد بکشد در دو رکعت به نمازی که نثار حرم و گنبد برپا شده ی حضرت زهرا بکنی ... انشاالله

                  دیدگاه


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

                    با سلام خدمت همه دوستان برنامه زیر تاریخ شمسی رو به میلادی تبدیل میکنه من این برنامه رو برای سال 86 تا 89 بررسی کردم ودرست جواب داده

                    متغیر GY , GM, GD, به ترتیب روز و ماه و سال شمسی ورودی برای تبدیل است


                    Dim Jy As Word
                    Dim Jm As Byte
                    Dim Jd As Byte

                    Dim Gy As Word
                    Dim Gm As Byte
                    Dim Gd As Byte

                    Dim Gm_array(12) As Word

                    Dim Gmonth_a(12) As Byte
                    Gmonth_a(1) = 31
                    Gmonth_a(2) = 28
                    Gmonth_a(3) = 31
                    Gmonth_a(4) = 30
                    Gmonth_a(5) = 31
                    Gmonth_a(6) = 30
                    Gmonth_a(7) = 31
                    Gmonth_a(8) = 31
                    Gmonth_a(9) = 30
                    Gmonth_a(10) = 31
                    Gmonth_a(11) = 30
                    Gmonth_a(12) = 31


                    '********************************** Jalili_to_gregorian
                    Sub Jalili_to_gregorian
                    Gm_array(1) = 287
                    Gm_array(2) = 318
                    Gm_array(3) = 346
                    Gm_array(4) = 12
                    Gm_array(5) = 42
                    Gm_array(6) = 73
                    Gm_array(7) = 103
                    Gm_array(8) = 134
                    Gm_array(9) = 165
                    Gm_array(10) = 195
                    Gm_array(11) = 226
                    Gm_array(12) = 256
                    Local Temp1 As Integer
                    Local Temp2 As Integer
                    Local Temp3 As Integer
                    Local Temp4 As Integer
                    Local Gyp As Word

                    Local Z As Integer
                    Local Mid_day As Integer
                    Local Mid_cabise As Single
                    Local Mid_2 As Word
                    Local Cabise As Byte
                    Local Total_day_of_year As Integer
                    Local Total_day_g As Integer
                    Local Mid_3 As Word
                    Local Cabisemiladi As Byte
                    Local Cabise_p As Byte

                    If Jm < 7 Then
                    Total_day_of_year = Jm - 1
                    Total_day_of_year = Total_day_of_year * 31
                    Total_day_of_year = Total_day_of_year + Jd
                    Else
                    Total_day_of_year = Jm - 7
                    Total_day_of_year = Total_day_of_year * 30
                    Total_day_of_year = 186 + Total_day_of_year
                    Total_day_of_year = Total_day_of_year + Jd
                    End If


                    Mid_cabise = Jy / 4
                    Mid_2 = Mid_cabise * 100
                    Mid_2 = Mid_2 Mod 100
                    If Mid_2 = 75 Then
                    Cabise = 1
                    Mid_3 = 287

                    Else
                    Cabise = 0
                    For Z = 1 To 12
                    Gm_array(z) = Gm_array(z) - 1
                    Next

                    Mid_3 = 286
                    End If

                    If Total_day_of_year =< Mid_3 Then
                    Gy = Jy + 621
                    Else
                    Gy = Jy + 622
                    End If

                    Temp1 = Gy Mod 4
                    Temp2 = Gy Mod 100
                    Temp3 = Gy Mod 400
                    Temp4 = Temp1 And Temp2
                    If Temp4 <> 0 Or Temp3 = 0 Then

                    Gmonth_a(2) = 28
                    Cabisemiladi = 0
                    Else
                    Gmonth_a(2) = 29
                    Cabisemiladi = 1
                    End If



                    If Cabise = 1 Or Cabisemiladi = 1 Then
                    Gm_array(3) = 346
                    End If

                    If Gm_array(3) < Total_day_of_year Or Total_day_of_year =< Gm_array(4) Then
                    Z = 3
                    Goto Select_m

                    End If
                    If Gm_array(12) < Total_day_of_year And Total_day_of_year =< Gm_array(1) Then
                    Z = 12
                    Goto Select_m

                    End If
                    For Z = 1 To 11 Step 1

                    If Z = 3 Then Incr Z
                    If Gm_array(z) < Total_day_of_year And Total_day_of_year =< Gm_array(z + 1) Then Goto Select_m
                    Next


                    Select_m:
                    Gm = Z
                    Temp4 = Gm - 1
                    If Temp4 > 0 Then
                    For Z = 1 To Temp4
                    Total_day_g = Total_day_g + Gmonth_a(z)
                    Next
                    End If


                    If Total_day_of_year < Mid_3 Or Total_day_of_year = Mid_3 Then
                    Mid_day = Total_day_of_year + 79
                    Else
                    Mid_day = Total_day_of_year - Mid_3
                    End If
                    Gd = Mid_day - Total_day_g
                    Gy = Gy - 2000

                    End Sub
                    چه دعایی کنمت بهترازاین ،که کنار پسر فاطمه هنگام اذان ، سحر جمعه ای پشت دیوار بقیع قامتت قد بکشد در دو رکعت به نمازی که نثار حرم و گنبد برپا شده ی حضرت زهرا بکنی ... انشاالله

                    دیدگاه


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

                      mikla جان تبریک میگم

                      پس بالاخره تونستی پورتش کنی

                      امیدوارم برنامتو تحت GPL منشر کرده باشی :biggrin:
                      چگونه هوشمندانه بپرسیم

                      دیدگاه


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

                        تو امضام هست . البطه به زبان C هست . من هم تبدیل کرده بودم .
                        فتو بلاگ من
                        کاردستی ها :
                        روبات شطرنج باز ( یادگار دوران جوانی )
                        فارسی نویسی مستقیم در نمایشگر های گرافیکی
                        کتابچه خود آموز زبان توصیف سخت افزار Verilog

                        دیدگاه


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

                          نوشته اصلی توسط حمید رستمی
                          mikla جان تبریک میگم

                          پس بالاخره تونستی پورتش کنی

                          امیدوارم برنامتو تحت GPL منشر کرده باشی :biggrin:
                          من توضیحاتتون رو در مورد gpl خوندم خیلی جالب بود یه بار دیگه اگه میشه مرحله به مرحله توضیح بدین چه طوری برنامه رو تحت gpl منتشر کنم :mrgreen: :mrgreen: :icon_razz:
                          چه دعایی کنمت بهترازاین ،که کنار پسر فاطمه هنگام اذان ، سحر جمعه ای پشت دیوار بقیع قامتت قد بکشد در دو رکعت به نمازی که نثار حرم و گنبد برپا شده ی حضرت زهرا بکنی ... انشاالله

                          دیدگاه


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

                            هیچ کاری نداره
                            فقط اول کدهات این متنو اضافه کن :
                            // This code is distributed under the GNU Public License

                            // which can be found at http://www.gnu.org/licenses/gpl.txt

                            البته معمولا توی کدهای basic همچین چیزی دیده نمیشه
                            ولی خب ، نیت مهمه :biggrin:
                            چگونه هوشمندانه بپرسیم

                            دیدگاه

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