تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
نوع بيانات جديد (تاريخ)
#1
كاتب الموضوع : FlyToAbd

بسم الله الرحمن الرحيم

الاولى: في التاريخ الهجري يحصل انه دولة معينة تعتمد شهر معين اطول من الحساب الفلكي المعتمد في الدوت نت وعليه سيتوقف المبرمج امام هذه المشكلة (السبب من فرض يوم صحيح فلكيا هو لحاجة الامكانية AddDays اضافة ايام كثير للتاريخ مثلا 70 يوم فلكي يجد التاريخ الصحيح بعد الاضافة عليه ان يعتمد القيم الفلكية لعدد ايام الشهر)

الثانية: حجم البيانات 8 بايت ويعتبر كبير حيث اننا لانستخدمه بكامل مواصفاته فمثلا في كثير من الاحوال نحن نستخدمه للتاريخ وهو فيه مكان للوقت وبذلك لانستفاد من هذا الفراغ وكذلك حدود التاريخ الممكنة هي من 1/1/1 الى 31/12/9999 ونحن لا نستخدم الا جزء صغير من هذا المجال الواسع في الكثير من برامجنا

نلاحظ وجود انواع عديدة لتخزين الاعداد الصحيحة مثل Byte(1), Short(2), Integer(4), Long(8), Decimal(16)
وكذلك SByte و UShort و UInteger و ULong عدى انواع البيانات التي تمثل الاعداد الحقيقية
وكل واحدة بمدى معين وانت تختار ما يناسبك فلماذا لا نعمل نوع جديد للتاريخ بحيث يكون حجمه اقل ومداه اقل
كذلك يتقبل قيمة اليوم خاطئة لكي يمكن حل المشكلة الاولى ولنخسر الامكانية AddDays فقط عندما يكون عدد الايام لدينا غير صحيح ونضيف له امكانية التحويل (مع تصحيح الخطأ) لنوع التاريخ المستخدم لدينا للاستفادة من باقي الامكانيات

اعتقد انه اصبح المبرر قوي لعمل هذا الكائن
اسم الكائن DateRange مجال تاريخ واقصد به نوع تاريخ ولكن ضمن مجال ملحوظ وهو حوالي 170 سنة وتحدد انت البداية المطاوبة له فمثلا تجعل البداية 1920 فسوف يغطى لغاية 2090
حجم الكائن 2 بايت حيث سيكون اول خمس بتات لليوم وسيتقبل من 0 الى 31 والبتات الاحدى عشر ستكون لعدد الاشهر اي 2^11 يساوي 2048 شهرا ولو قسمنا على 12 شهر للسنة الواحدة سيكون الناتج اكثر من 170 سنة

الخصائص العامة:
Day هذه الخاصية لقراءة وكتابة قيمة اليوم
Month لقراءة وكتابة قيمة الشهر
Year لقراءة وكتابة قيمة السنة

الطرق العامة:
ToString لقراءة قيمة التاريخ على شكل نص
ToShort لقراءة قيمة التاريخ على شكل رقم من 2 بايت
ToDate لقراءة قيمة التاريخ على شكل نوع تاريخ عام مع تصحيح خطأ اليوم ان وجد

IsFalseDate يرجع True اذا كان مقدار اليوم غير صحيح مع فرض ان الشهر والسنة صحيحتان

المشروع بالمرفقات
http://vb4arb.com/vb/uploaded/18_01349393612.zip
}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] تغير تاريخ الانتهاء بمجرد كتابه شرطين loay775 2 97 01-04-24, 01:51 PM
آخر رد: Taha Okla
  [شرح] اتصال بقاعدة بيانات اكسيس , اضافة بيان , تعديل بيان , حذف بيان , عرض البيانات . ahmed salam 25 38,258 23-02-22, 06:04 PM
آخر رد: رضوان الجماعي
  دمج قاعدة بيانات SQL Server 2008 مع المشروع بالـ VBNET snipercoder 4 8,210 12-11-20, 06:01 PM
آخر رد: lion4
  Private Text Encryption -خدمة للمبرمجين في جديد عالم التشفير- RaggiTech 1 3,547 07-05-20, 05:48 AM
آخر رد: سعود
  [درس فيديو] كيف تحول اي قاعدة بيانات اكسس الى SQL aljzazy 3 3,299 17-04-20, 09:27 PM
آخر رد: الوايلي
  [درس فيديو] كيف تحول اي قاعدة بيانات اكسس الى mysql aljzazy 0 2,319 10-04-20, 09:05 PM
آخر رد: aljzazy
  [VB.NET] كيفية استخدام اداوات ديف اكسبريس devexpressلادخال السجلات الى قاعدة بيانات نوع اكسس 13adam123 0 2,581 29-03-20, 12:50 PM
آخر رد: 13adam123
Lightbulb [VB.NET] تايمر جديد اسرع بأضعاف من التايمر العادي ؟! 3booody 9 5,317 27-11-19, 11:33 PM
آخر رد: 3booody
  كيفية عمل برنامج للأذان + قاعدة بيانات لـ 252 دولة و 9512 مدينة ! : مبرمج أوتار 4 23,539 21-01-19, 03:43 PM
آخر رد: elgokr
Rainbow [VB.NET] كلاس ResizeControls وطريقة جديد ومميزة لتكبير وتصغير ادوات الفورم تلقائيا الماجيك مسعد 8 8,756 01-10-18, 03:03 AM
آخر رد: LEO

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم