منتديات اولاد الفاو

منتديات اولاد الفاو ترحب بالضيوف الكرام وتتمنى تمضية وقت ممتع معنا******** من صلى على رسول الله صلى الله عليه و سلم صلاه واحده، صلى الله بها عليه عشرا ********نرحب بجميع ابناء الفاو داخل وخارج السودان



انضم إلى المنتدى ، فالأمر سريع وسهل

منتديات اولاد الفاو

منتديات اولاد الفاو ترحب بالضيوف الكرام وتتمنى تمضية وقت ممتع معنا******** من صلى على رسول الله صلى الله عليه و سلم صلاه واحده، صلى الله بها عليه عشرا ********نرحب بجميع ابناء الفاو داخل وخارج السودان

منتديات اولاد الفاو

هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.
منتديات اولاد الفاو

من ارض الفاو نحيكم

مكتبة الصور


خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Empty

المواضيع الأخيرة

» همسات دينية ..
خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Emptyالثلاثاء مارس 03, 2015 1:12 am من طرف علي البرنس

» Definition of salmonella bacteria
خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Emptyالجمعة مارس 14, 2014 12:08 am من طرف أحمدكزمه عين اللويقة

» تعريف بكتيريا السلمونيلا
خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Emptyالأربعاء فبراير 26, 2014 7:25 am من طرف ميسره احمد عثمان

» Enteric feve
خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Emptyالأربعاء فبراير 26, 2014 7:14 am من طرف ميسره احمد عثمان

» حمى التايفويد
خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Emptyالأربعاء فبراير 26, 2014 6:55 am من طرف ميسره احمد عثمان

» تحية طيبة
خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Emptyالأحد يناير 19, 2014 2:29 pm من طرف Admin

» حير2نا يا ناس البرير
خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Emptyالأربعاء يناير 08, 2014 9:28 am من طرف أحمدكزمه عين اللويقة

» من قصة المحلق وتاجوج
خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Emptyالثلاثاء يناير 07, 2014 11:13 pm من طرف أحمدكزمه عين اللويقة

» هذا هو الاسلام
خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Emptyالأربعاء ديسمبر 25, 2013 2:36 pm من طرف أحمدكزمه عين اللويقة

» ثورة الطين(احمد مطر)
خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Emptyالثلاثاء ديسمبر 24, 2013 5:22 pm من طرف أحمدكزمه عين اللويقة

» يلاكم ننم وندوبي
خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Emptyالثلاثاء ديسمبر 24, 2013 3:00 pm من طرف أحمدكزمه عين اللويقة

» معا من أجل موسوعة من الامثال السودانية الحديثة والمعاصرة
خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Emptyالثلاثاء ديسمبر 24, 2013 2:27 pm من طرف أحمدكزمه عين اللويقة

» عووووووووووووووووووووووك
خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Emptyالثلاثاء ديسمبر 24, 2013 12:47 am من طرف أحمدكزمه عين اللويقة

» الدوبيت السودانى
خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Emptyالثلاثاء ديسمبر 24, 2013 12:36 am من طرف أحمدكزمه عين اللويقة

» امثال شعبية
خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Emptyالثلاثاء ديسمبر 24, 2013 12:32 am من طرف أحمدكزمه عين اللويقة

المتواجدون الآن ؟

ككل هناك 23 عُضو متصل حالياً :: 0 عضو مُسجل, 0 عُضو مُختفي و 23 زائر

لا أحد


[ مُعاينة اللائحة بأكملها ]


أكبر عدد للأعضاء المتواجدين في هذا المنتدى في نفس الوقت كان 82 بتاريخ الخميس أكتوبر 10, 2024 11:53 am

احصائيات

أعضاؤنا قدموا 1411 مساهمة في هذا المنتدى في 1101 موضوع

هذا المنتدى يتوفر على 158 عُضو.

آخر عُضو مُسجل هو Alsadg19 فمرحباً به.


    خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري

    ميسره احمد عثمان
    ميسره احمد عثمان
    Admin


    عدد المساهمات : 467
    نقاط : 1367
    السٌّمعَة : 5
    تاريخ التسجيل : 02/02/2011

    خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Empty خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري

    مُساهمة من طرف ميسره احمد عثمان السبت أكتوبر 15, 2011 1:16 pm

    خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Icon7 خوارزمية : التحويل بين التاريخ الميلادي والتاريخ الهجري



    بسم الله الرحمن الرحيم
    السلام عليكم ورحمة الله وبركاته
    في هذا الموضوع ساشرح ان شاء الله آليه التحويل بين التاريخ الميلادي والتاريخ الهجري

    قبل الدخول في تفاصيل التحويل علينا معرفة بعض الامور :


    • اليوم اليولياني(Julian Day):
    اليوم اليولياني هو بمثابة عداد أيام مستمر منذ العام 4712 قبل الميلاد، فاليوم اليولياني الموافق ليوم 01/01/2002م مثلا هو 2452276.0، أي أن عدد الأيام منذ العام 4712 قبل الميلاد و حتى 01/01/2002 هو 2452276.0 يوما. و يبدأ اليوم اليولياني عند الساعة 12 ظهرا حسب توقيت جرينتش.



    • نقول عن التقويم الميلادي انه غريغوري اذا كان بعد 15/10/1582م
    • نقول عن التقويم الميلادي انه يولياني اذا كان قبل 15/10/1582م
    الآن ندخل الى آلية التحويل :

    في البداية ما حدا يسالني عن الارقام التي دخلت في التحويل لاني شخصيا لا اعرف كيف جاءت خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Smile
    أولا:تحويل التاريخ الميلادي إلى هجري...






    تتم عملية التحويل هنا على مرحلتين:


    • تحويل التقويم الميلادي الى اليوم اليولياني
    • تحويل اليوم اليولياني الى التقويم الهجري
    اولا: تحويل التاريخ الميلادي الى هجري:

    هنا ايضا يتم تقسيم آلية التحويل الى قسمين حسب نوع التقويم الميلادي (يولياني ام غريغوري)
    نختبر اذا كان التقويم الميلادي غريغوري ام لا
    قلنا مسبقا ان التاريخ الميلادي يكون غريغوري اذا كانالتاريخ الميلادي بعد 15/10/1582م






    دعونا نحلل شرط التقويم الغريغوري ..ليكون التقويم غريغوي يجب ان تتحقق احد الشروط التالية:


    • السنة اكبر من 1582م
    • السنة تساوي1582م والشهر اكبر من 10
    • السنة تساوي 1582 والشهر يساوي 10 واليوم اكبر من 14
    في البداية قمت بعمل بناءة من نوع Structure تمثل التاريخ وتحتوي ثلاثة اعضاء السنة والشهر واليوم.





    رمز برمجي:
    Structure xDate
    Dim Day As Integer
    Dim Month As Integer
    Dim Year As Integer
    End Structure



    والان قم بتصميم نموذج يحتوي على 6 TextBox وزر واحد
    والان داخل اجراء الClick التابع للزر Button1
    نقوم بحجز متغير جديد من نوع xDate وبعد ذلك نقوم باسناد القيم الثلاثة (اليوم والشهر والتاريخ)لاعضاءه الثلاثة
    رمز برمجي:
    Dim mDate As xDate
    Dim JD As Integer


    رمز برمجي:
    mDate.Day = Int(TextBox1.Text)
    mDate.Month = Int(TextBox2.Text)
    mDate.Year = Int(TextBox3.Text)



    وكما اسلفت هناك الية للتعامل مع الغريغوي والية اخرى للتعامل مع اليولياني:
    وفي المرحلة التالية نقوم بتحويل التاريخ الميلادي الى اليولياني

    رمز برمجي:
    If ((mDate.Year > 1582) Or ((mDate.Year = 1582) And (mDate.Month > 10)) Or ((mDate.Year = 1582) And (mDate.Month = 10) And (mDate.Day > 14))) Then
    JD = Int((1461 * (mDate.Year + 4800 + Int((mDate.Month - 14) / 12))) / 4)
    JD = JD + Int((365.5 * (mDate.Month - 2 - 12 * (Int((mDate.Month - 14) / 12)))) / 12)
    JD = JD - Int((3 * (Int((mDate.Year + 4900 + Int((mDate.Month - 14) / 12)) / 100))) / 4)
    JD = JD + mDate.Day - 32075
    Else
    JD = 365.5 * mDate.Year
    JD = JD - Int((7 * (mDate.Year + 5001 + Int((mDate.Month - 9) / 7))) / 4)
    JD = JD + Int((275 * mDate.Month) / 9) + mDate.Day + 1729777
    End If



    والان نقوم بتحويل التاريخ البولياني الى هجري وقم تم استخدام ارقام (لا اعلم من اين اتت) خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Smile

    رمز برمجي:
    Dim L, N, J As Integer
    L = JD - 1948440 + 10632
    N = Int((L - 1) / 10631)
    L = L - (10631 * N) + 354
    J = (Int((10985 - L) / 5316)) * (Int((50 * L) / 17719))
    J = J + (Int(L / 5670)) * (Int((43 * L) / 15238))
    L = L - (Int((30 - J) / 15)) * (Int((17719 * J) / 50))
    L = L - (Int(J / 16)) * (Int((15238 * J) / 43)) + 29
    mDate.Month = Int((24 * L) / 709)
    mDate.Day = L - Int((709 * mDate.Month) / 24)
    mDate.Year = 30 * N + J - 30



    في النهاية نقوم باسناد القيم الثلاثة الى الصناديق الثلاثة

    رمز برمجي:
    TextBox4.Text = mDate.Day
    TextBox5.Text = mDate.Month
    TextBox6.Text = mDate.Year


    هنا نكون قد انتهينا من تحويل التاريخ الميلادي الى هجري خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Smile

    ثانيا:تحويل التاريخ الهجري إلى ميلادي...
    نتبع نفس الالية بتحويل التقويم الهجري الى يولياني ثم الى ميلادي



    رمز برمجي:
    Dim hDate As xDate
    Dim JD As Integer


    رمز برمجي:
    JD = Int((11 * hDate.Year + 3) / 30) + 354 * hDate.Year + 30 *hDate.Month - Int((hDate.Month - 1) / 2) + hDate.Day + 1948440 - 385
    Dim L, N, J, K,I As Integer

    If (JD > 2299160) Then
    L = JD + 68569
    N = Int((4 * L) / 146097)
    L = L- Int((146097 * N + 3) / 4)
    I= Int((4000 * (L+ 1)) / 1461001)
    L = L - Int((1461 * I) / 4) + 31
    J = Int((80 * L) / 2447)
    hDate.Day = L - Int((2447 *J) / 80)
    l = Int(J / 11)
    hDate.Month = J + 2 - 12 * L
    hDate.Year = 100 * (N - 49) + I + L
    Else
    j = JD + 1402
    k = Int((J - 1) / 1461)
    L = J - 1461 * K
    n = Int((l - 1) / 365) - Int(l / 1461)
    I= L- 365 * N + 30
    J= Int((80 * I) / 2447)
    hDate.Day = I- Int((2447 * J) / 80)
    I= Int(J/ 11)
    hDate.Month = J+ 2 - 12 * I
    hDate.Year = 4 * K+ N+ I- 4716
    End If


    وفي النهاية نقوم باستقراء الثلاثة قيم كما في السابق

    واحب ان انوه ان هذه الخوارزمية هي الشائعة في جميع البرامج الدقيقة للتحويل
    طبعا البعض حيقول انو في دوال جاهزة للتحويل لكن كما العادة احببت توضيح مبدأ التحويل خوارزمية التحويل بين التاريخ الميلادي والتلريخ الهجري Smile
    ......والسلام عليكم ميسره احمد عثمان منقول

      الوقت/التاريخ الآن هو الخميس نوفمبر 21, 2024 9:46 pm