طراحی نرم افزار مبدل تاریخ

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • ~M*E*H*D*I~
    • 2011/10/19
    • 4377
    • 70.00

    طراحی نرم افزار مبدل تاریخ

    با درود خدمت دوستان

    همونطور که میدونید هر سال قمری 10 روز 21 ساعت از سال شمسی کوتاه تر هست ، سوال من طراحی نرم افزاری هست که با احتساب این اعداد و در نظر گرفتن سال های کبیسه تاریخ هجری قمری رو به تاریخ هجری شمسی تبدیل کنه بر اساس روز ماه و سال

    sigpic
  • حسام بحرانی

    • 2013/09/29
    • 2065
    • 72.00

    #2
    نوشته اصلی توسط vatanparast
    با درود خدمت دوستان

    همونطور که میدونید هر سال قمری 10 روز 21 ساعت از سال شمسی کوتاه تر هست ، سوال من طراحی نرم افزاری هست که با احتساب این اعداد و در نظر گرفتن سال های کبیسه تاریخ هجری قمری رو به تاریخ هجری شمسی تبدیل کنه بر اساس روز ماه و سال

    باسلام و تشکر از جناب وطن پرست بابت این پست خوبشون ، ابتدا فرمول تبدیل سال هجری شمسی به هجری قمری رو براتون ارسال می کنم و انشاءالله در آینده نزدیک فرمول تبدیل سال هجری قمری به سال هجری شمسی رو هم ارسال خواهم کرد.
    ابتدا در خانه a1 تاریخ شمسی رو بصورت 0000/00/00 بنویسید و در خانه b1 فرمول زیر را وارد کنید :
    کد PHP:
    =concatenate(int((((mid(a1;1;4)-1)*365.2422)+if(mid(a1;6;2)<=6;((mid(a1;6;2)-1)*31)+mid(a1;9;2);if(mid(a1;6;2)>6;((mid(a1;6;2)-7)*30)+186)+mid(a1;9;2))-119)/354.367)+1;"/";int(((((mid(a1;1;4)-1)*365.2422)+if(mid(a1;6;2)<=6;((mid(a1;6;2)-1)*31)+mid(a1;9;2);if(mid(a1;6;2)>6;((mid(a1;6;2)-7)*30)+186)+mid(a1;9;2))-119)/354.367-int((((mid(a1;1;4)-1)*365.2422)+if(mid(a1;6;2)<=6;((mid(a1;6;2)-1)*31)+mid(a1;9;2);if(mid(a1;6;2)>6;((mid(a1;6;2)-7)*30)+186)+mid(a1;9;2))-119)/354.367))*12)+1;"/";int((((((mid(a1;1;4)-1)*365.2422)+if(mid(a1;6;2)<=6;((mid(a1;6;2)-1)*31)+mid(a1;9;2);if(mid(a1;6;2)>6;((mid(a1;6;2)-7)*30)+186)+mid(a1;9;2))-119)/354.367-int((((mid(a1;1;4)-1)*365.2422)+if(mid(a1;6;2)<=6;((mid(a1;6;2)-1)*31)+mid(a1;9;2);if(mid(a1;6;2)>6;((mid(a1;6;2)-7)*30)+186)+mid(a1;9;2))-119)/354.367))*12-int(((((mid(a1;1;4)-1)*365.2422)+if(mid(a1;6;2)<=6;((mid(a1;6;2)-1)*31)+mid(a1;9;2);if(mid(a1;6;2)>6;((mid(a1;6;2)-7)*30)+186)+mid(a1;9;2))-119)/354.367-int((((mid(a1;1;4)-1)*365.2422)+if(mid(a1;6;2)<=6;((mid(a1;6;2)-1)*31)+mid(a1;9;2);if(mid(a1;6;2)>6;((mid(a1;6;2)-7)*30)+186)+mid(a1;9;2))-119)/354.367))*12))*29.53)+1
    !With God all things are possible



    کامنت

    • ~M*E*H*D*I~
      • 2011/10/19
      • 4377
      • 70.00

      #3
      تشکر از حسام عزیز ، البته منظور بنده بر عکس بود ، اونچه مد نظر بنده هست محاسبه تاریخ دقیق محرم سال 63 هجری قمری به شمسی هست ، به طوری که کمترین میزان خطا رو داشته باشه

      sigpic

      کامنت

      • حسام بحرانی

        • 2013/09/29
        • 2065
        • 72.00

        #4
        نوشته اصلی توسط vatanparast
        تشکر از حسام عزیز ، البته منظور بنده بر عکس بود ، اونچه مد نظر بنده هست محاسبه تاریخ دقیق محرم سال 63 هجری قمری به شمسی هست ، به طوری که کمترین میزان خطا رو داشته باشه
        با سلام ، همانطور که قول داده بودم ، فرمول تبدیل تاریخ هجری قمری به هجری شمسی را برای دوستان ارسال کردم . برای استفاده از آن ، ابتدا سال قمری مورد نظر را بصورت : 0000/00/00 در خانه a1 بنویسید و سپس در خانه b1 فرمول زیر را وارد کنید :
        کد PHP:
        =concatenate(int((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)+1;"/";if((int(((((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)-int(((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)))*365.2422)))<=186;if((mod((int(((((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)-int(((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)))*365.2422)));31))=0;(int((int(((((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)-int(((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)))*365.2422)))/31)+1)-1;(int((int(((((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)-int(((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)))*365.2422)))/31)+1));if((mod(((int(((((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)-int(((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)))*365.2422)))-186);30))=0;((int(((int(((((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)-int(((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)))*365.2422)))-186)/30))+7)-1;((int(((int(((((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)-int(((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)))*365.2422)))-186)/30))+7)))+k4;"/";if((int(((((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)-int(((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)))*365.2422)))<=186;if((mod((int(((((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)-int(((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)))*365.2422)));31))=0;31;(mod((int(((((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)-int(((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)))*365.2422)));31)));if((mod(((int(((((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)-int(((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)))*365.2422)))-186);30))=0;30;(mod(((int(((((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)-int(((((((mid(a1;1;4))-1)+((mid(a1;6;2))-1)/12)*354.367)+(mid(a1;9;2))+119)/365.2422)))*365.2422)))-186);30))))) 
        با توجه به این فرمول روز 0063/01/10 قمری مطابق با 61/06/30 شمسی و نیز 1435/01/09 قمری مطابق با 1392/08/22 خواهد بود . امیدوارم مورد توجه دوستان قرار گیرد .
        با سپاس
        ɦɛʂɑɱ ɓɑɦɾɑɳɨ

        !With God all things are possible



        کامنت

        • Ali Parsaei
          مدير تالارتوابع اکسل

          • 2013/11/18
          • 1519
          • 71.67

          #5
          سلام،
          با تشکر از حسام عزيز، من جسارتا" مطلبي کلي را در مورد سالهاي کبيسه عرض کنم :
          هر سال تقريبا" 365 روز و 5 ساعت و چهل و هفت هشت دقيقه است، ما هر چهار سال يک روز به سال اضافه مي کنيم يعني 11 تا 12 دقيقه باز هم اختلاف باقي مي ماند (يعني ما 4 تا شش ساعت اضافه مي کنيم بنابراين 11 تا 12 دقيقه زياد اضافه مي کنيم) و بنابراين حدود 120 يا 130 سال که بگذرد بايد يک سال کبيسه را نگيريم. که البته اين کار دقيقا" توسط دست اندرکارن انجام مي گردد، يک جدولي هم دارد و به همين جا ختم نمي شود، بلکه باز بابت خورده هاي ساعت باقيمانده به فرض مثال بعد از 253 سال (فرضي عرض مي کنم) باز يک روز بايد کم و زياد کنيم. و بعد تازه برويم سروقت اختلاف قمري و شمسي و .... به همين جهت با توجه به گفته دوستمان جناب وطن پرست که کمترين خطا را مد نظر دارند بايد بگويم که اگر دقيق دقيق بخواهيم بدانيم فرضا" روز عاشورا چه روزي بوده بايد اين موارد را هم دقت کنيم، البته براي محاسبه حدودي همان کارهاي معمول به ما مي گويند که فرضا" ماه محرم 63 حدود ماه ...سال ... شمسي بوده.
          Last edited by Ali Parsaei; 2013/12/23, 13:00.
          sigpic

          کامنت

          چند لحظه..