اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

تحدي برمجي لمحبي البرمجة مع دوال تقويم أم القرى


الردود الموصى بها

شكرًا لك أخي أبو هادي

البرنامج رائع ، ولدى تساؤل ؟؟

الا يمكن صنع مثله بالأكسس؟؟؟

أما نتائج التقويم حتى سنة 1500هـ قد عثرت عليه منذ قليل

وأريد أن أرفقه ؟؟؟؟ ولكن أين خاصية الإرفاق

وإن لم يكن هناك أي مانع فسوف أضع السنين الخمسين الباقية بعد استخلاصها من الجدول

بعد إذنك أخي

وذلك لأني لم أجد خاصية إرفاق الملف

أخوك أبوسليمان

رابط هذا التعليق
شارك

  • الردود 94
  • Created
  • اخر رد

Top Posters In This Topic

السلام عليكم

شكرا لك أخي أبوسليمان ،

الحقيقة أنه مجرد أداة (Tool) لي شخصيا وليس برنامجا للتوزيع ولكنه يحتوي على معادلات فلكية معقدة كانت على شكل نصوص ترجمتها إلى أكواد من جملة كتب جمعت من أكثر من بلد .

والحقيقة لا تستطيع دائما أن تعطي كل ما لديك وخصوصا أقولها وأنا كلي أسف أنه من النادر أن ترى في عالمنا العربي من يحترم الفكر ويقدره حتى أن أبسط الحقوق بذكر إسم من يصنع شفرة شبه معدوم ، والأدهى والأمر أن ترى من يستخدم أكوادك ويقوم بتغيير المسميات ثم ينسبها لنفسه دون خجل أو استحياء .

عموما تستطيع إرسال الملف على بريدي وسأقوم بإضافته إلى السنوات السابقة .

تحياتي .

رابط هذا التعليق
شارك

أخي الأستاذ/ أبو هادي

سلام الله عليك ورحمته وبركاته

أرسلت الملف إلى بريدك عسى أن تصل إليك.

كما أشكر صراحتك أخي ، ولك الحق في الاحتفاظ بكل ما تراه من حقوقك الخاصة

وفقك الله أخي لكل خير

أخوك

أبوسليمان

رابط هذا التعليق
شارك

السلام عليكم

50 سنة إضافية من عام 1451 حتى عام 1500هـ .

    '-- السنوات من 1451 حتى 1500 من تقويم أبو هادي وقد تحتوي على بعض الإختلافات
    Case 1451: Call FillYear("14-05-2029", 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1)
    Case 1452: Call FillYear("04-05-2030", 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1)
    Case 1453: Call FillYear("23-04-2031", 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0)
    Case 1454: Call FillYear("11-04-2032", 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1)
    Case 1455: Call FillYear("01-04-2033", 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0)
    Case 1456: Call FillYear("21-03-2034", 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1)
    Case 1457: Call FillYear("11-03-2035", 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1)
    Case 1458: Call FillYear("28-02-2036", 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1)
    Case 1459: Call FillYear("16-02-2037", 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0)
    Case 1460: Call FillYear("05-02-2038", 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1)
    Case 1461: Call FillYear("26-01-2039", 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0)
    Case 1462: Call FillYear("15-01-2040", 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1)
    Case 1463: Call FillYear("04-01-2041", 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0)
    Case 1464: Call FillYear("24-12-2041", 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1)
    Case 1465: Call FillYear("14-12-2042", 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1)
    Case 1466: Call FillYear("03-12-2043", 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1)
    Case 1467: Call FillYear("21-11-2044", 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0)
    Case 1468: Call FillYear("10-11-2045", 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1)
    Case 1469: Call FillYear("31-10-2046", 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0)
    Case 1470: Call FillYear("20-10-2047", 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0)
    Case 1471: Call FillYear("09-10-2048", 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0)
    Case 1472: Call FillYear("28-09-2049", 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0)
    Case 1473: Call FillYear("17-09-2050", 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0)
    Case 1474: Call FillYear("06-09-2051", 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1)
    Case 1475: Call FillYear("26-08-2052", 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0)
    Case 1476: Call FillYear("15-08-2053", 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1)
    Case 1477: Call FillYear("05-08-2054", 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0)
    Case 1478: Call FillYear("25-07-2055", 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1)
    Case 1479: Call FillYear("14-07-2056", 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1)
    Case 1480: Call FillYear("03-07-2057", 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1)
    Case 1481: Call FillYear("22-06-2058", 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0)
    Case 1482: Call FillYear("11-06-2059", 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1)
    Case 1483: Call FillYear("31-05-2060", 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0)
    Case 1484: Call FillYear("20-05-2061", 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0)
    Case 1485: Call FillYear("10-05-2062", 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1)
    Case 1486: Call FillYear("30-04-2063", 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1)
    Case 1487: Call FillYear("18-04-2064", 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1)
    Case 1488: Call FillYear("07-04-2065", 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1)
    Case 1489: Call FillYear("27-03-2066", 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1)
    Case 1490: Call FillYear("17-03-2067", 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1)
    Case 1491: Call FillYear("05-03-2068", 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1)
    Case 1492: Call FillYear("23-02-2069", 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1)
    Case 1493: Call FillYear("12-02-2070", 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1)
    Case 1494: Call FillYear("01-02-2071", 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1)
    Case 1495: Call FillYear("21-01-2072", 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0)
    Case 1496: Call FillYear("09-01-2073", 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1)
    Case 1497: Call FillYear("30-12-2073", 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0)
    Case 1498: Call FillYear("19-12-2074", 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1)
    Case 1499: Call FillYear("09-12-2075", 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0)
    Case 1500: Call FillYear("27-11-2076", 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1)
على أن يعدل السطر التالي :
  LRec = 1500

تحياتي .

رابط هذا التعليق
شارك

أخي الأستاذ أبو هادي

سلام الله عليك

أحببت أن أطلعك على أني قد تمكنت من جعل تسلسل لليوم في تقويم أم القرى بدءً من 1/1/1300 هـ

وهو نفس تسلسل التاريخ الميلادي وهو ( -6258 ) وحتى آخر يوم من سنة 1500 هـ

وتطلب الأمر التعديل في الأكواد الخاصة بك

فإن أذنت لي أن أضعه هنا أو أن أرسله لك حتى تعاين التعديل وترى مدى صلاحية ذلك ومدى الاستفادة منه، فعلت

أخوك أبو سليمان

تم تعديل بواسطه أبوسليمان
رابط هذا التعليق
شارك

السلام عليكم

أخي أبوسليمان .. بعد التحية :

أفضل أن أطلع عليه وأعطيك رأيي به ، وخصوصا أن هذا التقويم أول مشروع برمجي قمت به في حياتي وذلك منذ بداية التسعينات وهو عزيز علي بشكل كبير ، وقد يعز علي التعديل فيه من غيري ولكني أؤيد أي دوال مساندة تدعمه وتقويه .

على كل حال سوف أعطيك رأيي فيه بكل صدق وأمانة ، أنا بانتظار التعديلات .

تحياتي .

رابط هذا التعليق
شارك

أخي الأستاذ أبو هادي

لقد أرفقت لك الوحدة النمطية على بريدك

أرجو كرمًا الاطلاع والإفادة

علمًا بأن الدوال تجريبية وغير مكتملة

الجديد فيه هو منح اليوم من تقويم أم القرى تسلسل هو نفس تسلسل اليوم الميلادي وهذا سيسهل عملية التحويل بين التقويمين بسهولة

دمج واختصار دالة تحميل بيانات السنة

أخوك أبوسليمان

رابط هذا التعليق
شارك

السلام عليكم

أخي أبوسليمان .. لقد أنزلت مثالكم واطلعت عليه بشكل سريع ولي عودة معه في أقرب وقت إن شاء الله تعالى .

بالنسبة للتسلسل فأنه موجود أصلا ، ناظر دالة Um2Greg فهي ترجع تسلسل تاريخ النظام سواء ميلادي أو هجري .

أما اختصار الأكواد فلي فيه نظر وكلام كثير ولكن سأختصره في التالي والتعليق لا يخص الأستاذ أبوسليمان لوحده :fff: :

- هل جودة الكود يقاس بطوله أو بقصره ؟

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

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

كما أميل إلى التنظيم الشديد بقدر الإمكان وهذا الأمر أجبرتني عليه لغة الباسكال ، فهي حقا لغة الهندسة والنظام . فمثلا لن تراني أعرف متغيرا وسط الكود ! إلا ما شذ أو ندر وقد يجبرني عليه أحيانا سياق الكود المكتوب من غيري .

كما أني أود ألفت النظر إلى كل من يريد أن يدعم التقويم بالأمور التالية :

1 - أن لا يؤثر أي خطأ في سنة ما على نتائح باقي السنوات فليكن الخطأ محصورا في سنة واحدة فقط .

2 - أن لا يؤثر حذف أي سنة أو مجموعة سنوات من تسلسل السنوات على نتائج السنوات الأخرى .

3 - أن يستطيع كل من يستخدم تقويما فلكيا الإستفادة من تقويم أم القرى بسهولة ويسر .

4 - أن لا تؤثر الإضافات على سرعة المعالجة واستخراج النتائج .

هذا ما يحضرني الآن ولكن هناك أمور كثيرة لا تسعفني ذاكرتي في تذكرها الآن .

تحياتي .

رابط هذا التعليق
شارك

شكرًا لك أخي أبو هادي

واعتذرني عن التأخر في المتابعة ، وذلك لانشغالي في الأيام القليلة الماضية

ومن مشاركتك الأولى فإني تراجعت تمامًا عن مسألة الاختصار والدمج

وأشكرك على نقاط التوجيه فيها

كما أشكرك على المتابعة بمشاركتك الثانية وإرسال مرئياتك على مثالي وأقوم بالإطلاع عليه الآن

****

كما أرجو منك أخي العزيز

تجربة السطر التالي إذا كان التقويم المحمل حتى سنة 1450

greg2um (14,5,2029)
وهو يمثل تاريخ أول يوم من سنة 1451 بمعنى 1/1/1451 أوالتالي إذا كان التقويم المحمل حتى سنة 1500
greg2um (17,11,2077)
وهو يمثل تاريخ أول يوم من سنة 1501 بمعنى 1/1/1501 وملاحظة عمل الدالة في الأسطر التالية :
  If yy > UBound(UmAll) And _
     Days <= UmAll(UBound(UmAll)).GS + UmAll(UBound(UmAll)).M2(12) Then
    yy = yy - 1
  End If

هذا إن لم تقم بتعديل دالة Greg2Um

فلم أجد الأسطر المشار إليها في الملف المرسل

أخوك وتلميذك

أبوسليمان

تم تعديل بواسطه أبوسليمان
رابط هذا التعليق
شارك

السلام عليكم

حياك الله أخي أبوسليمان ،

لم أقم بأي تعديلات عدا التي أشرت إليها وكل الذي عملته نسخ ولصق من ملف الـ bas وقد رجعت للملف الذي أرسلته لك وهو يحتوي على الأسطر التي أوضحت بعدم وجودها ، إلا إذا أرسلت لك ملف آخر بالخطأ .. ربما .

على كل حال ملاحظتك تدل أنك فحصت ومحصت الكود (y) ، أتعبته وأتعبك :d ، فعلا هناك خطأ في المقارنة وتم تعديلها لتكن كالتالي :

 If yy > UBound(UmAll) And _
    Days <= UmAll(UBound(UmAll)).GS + UmAll(UBound(UmAll)).M2(12) - 1 Then
   yy = yy - 1
 End If

تحياتي .

رابط هذا التعليق
شارك

حياك ربي أخي أبو هادي

فعلاً لقد لاحظت وجود الأسطر

ولم ألاحظه سابقًا لخطئ مي، فقد كنت أنظر للمديول القديم لتقويم أم القرى

وجزاك الله الف خير

أنت عدلت الكود بإنقاص واحد

وأنا عدلت الكود بإزالة علامة التساوي

والنتيجة واحدة

أليس كذلك أخي

تلميذك

أبوسليمان

رابط هذا التعليق
شارك

السلام عليكم

تم إعادة كتابة كل الدوال الخاصة بتقويم أم القرى ولم يتم فحص أي منها ، يعني تحتاج إلى فحص :d

ماعدا دالة Format يبدو لي أنها ستأخد الجهد الأكبر لذا سأتركها للمستقبل القريب إن شاء الله تعالى .

تحياتي .

الملفات المرفقة

UmAlQura_Functions_AboHadi.rar ( 2.74ك ) عدد مرات التنزيل: 14

تم تعديل بواسطه أبو هادي
رابط هذا التعليق
شارك

السلام عليكم

وجدت خطأين :

الأول في دالة DateDiff2 وكان الخطأ في الأقواس والصواب كالتالي :

Case "ww":   DateDiff2 = Fix((Greg2 - Greg1) / 7)
والآخر في دالة Month2 والخطأ في نسيان علامة التساوي والصواب كالتالي :
Month2 = IIf(UmDate = "", 0, Mid(UmDate, 6, 2))

تحياتي .

رابط هذا التعليق
شارك

ما شاء الله عليكم يا جامعة ، أبو هادي وأبو سليمان ، تطبيقات عمليه ممتازة جدا ، وأكواد أميز وأسلوب تخطيط فعال..

أتمنى لكما التوفيق وتقبلا تحياتي وعذرا على الإزعاج

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته

أولاً : كل عام ورمضان كريم

أعان الله الجميع على اغتنام هذا الشهر الفضيل بكثرة الطاعات والعبادات

ثم

ما شاء الله عليك أخي أبو هادي

دائمًا تتكفل بمثل هذه الاعمال الكبيرة

جزاك الله ألف خير

أخوكم أبو سليمان

رابط هذا التعليق
شارك

السلام عليكم

شكرا لك أخي النبهاني وسعدنا بمروركم الكريم .

وشكرا لك أخي أبوسليمان وأتمنى مساندتك في فحص الدوال كالعادة .

الأخ عبدالله سليمان .. مطلوب متابعتك للموضوع كما بدأت به .. آمل منك المشاركة في تقويم الدوال واختبارها .

مرفق مثال الأخ عبدالله سليمان بعد إعادة كتابة كل الدوال وخصوصا دالة Format والتي أخذت مني جهدا كبيرا قد تساوي كتابة باقي الدوال مجتمعة أو تزيد .

تحياتي .

الملفات المرفقة

UmAlQura_20041017.rar ( 78.62ك ) عدد مرات التنزيل: 33

تم تعديل بواسطه أبو هادي
رابط هذا التعليق
شارك

الأخ عبدالله سليمان .. مطلوب متابعتك للموضوع كما بدأت به .. آمل منك المشاركة في تقويم الدوال واختبارها .

الأخ أبو هادي .

سأحاول الليلة -بإذن الله - تجربة الدوال ، خاصة بعد التغييرات الأخيرة التي طالت جميع الكود .

علماً أني ولله الحمد استفدت من هذه الدوال قبل إعادة كتابتها وجرى تطبيقها في برامجي ونجحت بدون أي مشاكل ولله الحمد والشكر ، بل حتى في الاستعلامات ذات المعايير التاريخية لم تكن هناك مشاكل مع كون التعبير يتعامل مع حقل نصي وليس تاريخي على اعتبار أني قمت بحفظ تاريخ أم القرى فقط في قاعدة البيانات كحقل نصي مكون من عشرة حقول .

وأكرر شكري لكم وللأخ أبو سليمان على جهودكم .

رابط هذا التعليق
شارك

أخي الأستاذ أبو هادي

أشكرك على ثقتك الغالية ...

بعد تجربة سريعة للدوال وجدتها رائعة في التنظيم والترتيب والوضوح

مع ملاحظات بسيطة في دالة

Now2 : فتنسيق الوقت فيه عكسي كما ترى في الكود التالي

Public Function Now2()
  Now2 = Format(Now, "ss:nn:hh ") & _
         Hijri_Arabic(Greg2Um(Day(Now), Month(Now), Year(Now)))
End Function

ودالة Cdate2 : ترجع الرقم المقابل لتاريخ أم القرى بالميلادي

في حين أن ذات الدالة والخاصة بالأستاذ عبدالله سليمان كانت ترجع تاريخ أم القرى بتسيق تاريخ عربي

والله يحفظكم ويرعاكم

تلميذك

أبوسليمان

رابط هذا التعليق
شارك

السلام عليكم

الأخ عبدالله سليمان .. شكرا لك ، واعلم أني لم أكن بحاجة لهذه الدوال وما بذلته من وقت وجهد إلا لما أحسسته من خلال مشاركاتك أن تريدها مني ولو بطريق غير مباشر . على كل حال هذه الظروف أثمرت عن ايجاد ما يكمل التقويم ويجعله أكثر قوة وأكثر عناية للمهتمين به .

الأخ أبوسليمان .. شكرا لك أستاذنا الكريم ، وكما تعلم أن الوقت يبدأ بالساعة ثم الدقيقة ثم الثانية والبداية للإنجليزي تبدأ من اليسار ونفسها بالعربي تبدأ من اليمين . وباتباع هذه القاعدة يكون التنسيق سليما ، علما أنا لا أميل إلى عرض التاريخ والوقت بالتنسيق العربي لما يسببه لي من إرباك وخصوصا أنا أعمل في شركة ليس للعربي نصيب فيها .

أما دالة CDate فالمفترض أن ترجع نوع تاريخ وليس نص كما هو الحال في دالة Format فمع هذه الدالة يمكن استخدام العمليات الحسابية معها . كما أني أميل إلى نفس النتيجة لدالة DateSerial .

والحل الأمثل وأعتقد إن وافقتموني عليه هو إضافة مدخل للتحديد نوع المخرج ، إما أن يكون نصا أو رقما وذلك للداتين الموضحتين أعلاه .

تحياتي .

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته

أخي الأستاذ عبدالله سليمان

لك كل الشكر والفضل بإذن الله في إنتاج هذه الدوال بهذه القوة دون أن ينقص ذلك من فضلك

أوفضل الأستاذ أبو هادي في وضها لتقويم أم القرى

فأنت صاحب السبق في الاقتراح ، والأستاذ أبو هادي في عملها باحتراف وإبداع

أخي الأستاذ أبو هادي

صحيح ما تقوله منطقيًا

ولكنا في المجتمع العربي لم نر من يتسخدم تنسيق التاريخ كما في دالة Now2

والجميع يتستخدم التنسيق ( hh:ss:nn ) على ما أظن ( والله أعلم )

وبالنسبة لدالة Cdate و دالة DateSerial

الاقتراح بإضافة مدخل لتحددي نوع المخرج فالاقتراح ممتاز ولست أنا من أوافق أو اعترض على هذا الاقتراح

كما أرجو منك كرمًا مراجعة دالة DateAdd2

فهي لا تعطي نتيجة صحيحة في حال إدخال عدد عشري مثل (0.5) أو (1.5) وما إلى ذلك

علمًا بأن سلوك الدالة DateAdd إهمال الجزء العشرى

وما لاحظته في دالة DateAdd2 هو جبر ناتج العمليةالحسابية إلى أقرب عدد صحيح .

كما لا يفوتني أن أعبر عن اعجابي الشديد بدالة Format2 والروتينات الفرعية لها

فهذه الدالة مشروع بذاتها

أخوكم

أبوسليمان

رابط هذا التعليق
شارك

عفوًا أستاذي أبو هادي

يتضح سلوك الدالة DateAdd2 أكثر عندما يكون الجزء العشري أكبر من خمسة أعشار ، مثل (0.6) وما بعدها فيكون الجبر .

تصحيح : يكون الجبر في الوسيطة : Number لأنها من نوع Integer

وليس كما ذكرت في مشاركتي السابقة بأن الجبر يحصل في ناتج العملية الحسابية . " أرجو المعذرة "

ملاحظة :

في مشاركتي السابقة وردت كلمة " يتستخدم " والصحيح ( يستخدم ) .

كما وردت كلمة " تحددي" والصحيح ( تحديد ) .

تلميذك

أبو سليمان

رابط هذا التعليق
شارك

الأخوة الكرام

أعددت الملاحظات التالية ، قبل أن أقرأ الردود بعد ردي السابق ، فأعذروني على ما فيها من تكرار .

1- حذفت الدوال التالية من المثال دون إيضاح السبب :

BeforeUpdate_UM

AfterUpdate_UM

Change_UM

لهذا لايمكن تعديل التواريخ في المثال .

2 - لم يتضح لي دور الوحدة النميطية (UmAlQura_LocalizationData)

3- دالة Now2 تعرض الوقت بشكل غير مناسب ، وبدون حرف ص أو م

4- الدالة format2 - C تعرض التاريخ بشكل مقلوب

5- الدالة format2 - Q أعتقد أنها تعطي نتيجة غير صحيحة

6- الدالة format2 - Y تعطي نتيجة صراحة لم أفهما

7- الدالة format2 - T تعطي نتيجة بحرف T

8- الدالة format2 - WW ربما تحتاج إلى التأكد من نتيجتها

9- الدالة format2 - yyy تعطي نتيجة False

10- الدالة DateDiff2 تعطي نتيجة مختلفة عن دالة DateDiff الأصلية ، لهذا فهي تحتاج إلى تدقيق أكثر لأهميتها .

11- الدالتين Date2 - Now2 - تعطي خطأ توقف عند تحويل التقويم إلى التقويم الهجري .

12- الدالة CDate تعطي النتيجة كرقم وليس كتنسيق تاريخي .

وبرفقه المثال بعد إعادة تصميمه بشكل مختصر ، مع وجود الملاحظات السابقة . وتحويل التقويم بقاعدة البيانات إلى التقويم الهجري .

الملفات المرفقة

UmAlQura_20041017.rar ( 65.06ك ) عدد مرات التنزيل: 15

تم تعديل بواسطه أبو هادي
رابط هذا التعليق
شارك

أما دالة CDate فالمفترض أن ترجع نوع تاريخ وليس نص كما هو الحال في دالة Format فمع هذه الدالة يمكن استخدام العمليات الحسابية معها .  كما أني أميل إلى نفس النتيجة لدالة DateSerial .

ولكن هل يمكن أن تكون النتيجة صحيحة في الاشهر التي يكون فيها اختلاف بين تقويم أم القرى ، والتقويم الهجري ، فمثلاً هل سيقبل الاكسس شهراً بثلاثين يوماً في تقويم أم القرى بينما هو في التقويم الهجري تسعة وعشرون يوماً .

==============

من جهة أخرى أعتقد أن كثير من الأخطاء تعود لسببين :

السبب الأول : هو أختلاف تنسيق النتيجة عن التنسيق المطلوب المعتمد في بلد المستخدم ، وهذا أمر بسيط يمكن التغلب عليه عادة بسهولة .

السبب الثاني وهو الأهم : هو اختلاف طريقة حساب النتيجة في دوال تقويم أم القرى عن الدوال الأصلية ، فمثلاً في دالة DateDiff عندما يكون الفرق به كسور هل يجبر أم يحذف الكسر ، وما هو حد الكسر الذي يجبر أو يحذف .

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

أمر أخير لابد من ذكره - وإن كان بسيطاً - هو الانتباه إلى إعادة نوع التقويم حسب انوع المستعمل في قاعدة البيانات ، عند الخروج من الدالة قبل الوصول إلى سطر إعادة التقويم .

تم تعديل بواسطه عبدالله سليمان
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه



×
×
  • اضف...

Important Information