الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج صغير هديه لكل اعضاء المنتدى

مغلق
بدأه alroqy في 15 يونيو 2003 · 6 رد · 1,222 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أولا البرنامج فكرته هي كالتالي

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

البرنامج مكتوب بلغة فيجوال بيسك واستخدمت فيه دالتين متخصصه في التاريخ

وهي متوفره في لغة فيجوال بيسك وهما

Datediff()و DateAdd()

وتستخلص الوظيفه ()DareDiff عدد السنوات أو عدد الشهور , أو الأيام

و ()DateAdd بإضافة عدد السنوات والشهور والايام الى تاريخ معين

البرنامج مرفق ولكم تجربته كما سوف اضيف الشفره المصدريه كهديه لكم

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

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

شكرا لكم

يَçè_çلêçٌيî.zip

#2

يمكنك استخدام التقويم الموجود بالTool Box بVB.NET وهو أداة قوية ويمكنك أن تستخدم Localization بالنسبة لموضوع التحويل وإن كنت غير متأكد من هذه الخاصية ولكنها بالتأكيد غير مباشرة .لكن عامة يمكنك أن تجد العديد من الوظائف القوية في ال month calendar الموجودة بال VB.NET مثل تحديد أيام معينة لتكون Bold وكذلك مناسبات سنوية ويمكنك التنقل فيها بسهولة لكثرة الخيارات الموجودة بها.

#3

تشكر اخي الكريم على مجهودك

#4

أهلا بك أخي alroqy :)

سأجرب البرنامج وأعطيك رأيي لاحقاً ... وإليك تحياتي (f)(f)

ani.gif
#5

اشكر الاعضاء Visitor_OM و عبدالله فتحي على الرد

كما أشكرك يا الجيش

على المعلومات التي افدتني بها ولكنني لم استخدم net. ولكن كتبت البرنامج بي فيجوال بيسك 6

تحياتي لكم

#6

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

اقدم لكم الشفره المصدريه لبرنامج حساب التاريخ

اولاً :

افتح مشروعاً جديدا في فيجوال بيسك, وأضف حقلي نص لكل من التاريخ الإبتدائي والتاريخ النهائي, وأعط لكل واحد منهم وصفا مثل التاريخ الأول والتاريخ الثاني , وغير خاصية الإسم لهما إلى txtStartDate للتاريخ الأول

و txtEndDate للتاريخ الثاني على التوالي, وغير خاصية الإتجاه لكل منهما لتصبح من اليمين لليسار

أضف ثلاثة حقول نصيه (Text) اخرى , وأعط لكل واحد منهما وصفا بحيث تكون عدد السنوات , عدد الشهور , عدد الأيام, على الترتيب

غير خاصية الأسم لكل حقل بحيث تصبح

txtYear , txtMonths, txtDays

واضف أيضا زر أمر وأعطه الوصف حساب وغير خاصّية الأسم الى Compute .

اختر حقل النص للتاريخ الأول وأنقر على الحدث Validate ثم اضف الكود التالي

Private Sub txtEndDate_Validate(Cancel As Boolean)

If IsDate(TxtStartDate) Or Len(TxtStartDate) <= 0 Then

Cancel = False

Else

MsgBox "(yyyy/mm/dd),ادخل التاريخ بصوره صحيحه", vbInformation

Cancel = True

End If

End Sub

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

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

كرر الشفره بالنسبه للتاريخ الثاني مع استبدال txtStartDate إلى txtEndDate

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

اضف الشفره التاليه في منطقة التعريف Declarations لل Form لتعريف بعض المتغيرات اللازمه في عملية الإحتساب:

Option Explicit

Private yaers As Integer

Private months As Integer

Private days As Integer

Private yaerstemp As Integer

Private datestart As String

Private dateend As String

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

اضف الكود التالي إلى الحدث Click لزر الأمر Compute

Private Sub Compute_Click()

datestart = TxtStartDate

dateend = txtEndDate

If Not IsDate(datestart) Or Not IsDate(dateend) Then

MsgBox "اكمل التاريخ الناقص أولا", vbCritical

Else

yaers = DateDiff("yyyy", datestart, dateend)

months = DateDiff("m", DateAdd("yyyy", yaers, datestart), dateend)

days = DateDiff("d", DateAdd("m", months, DateAdd("yyyy", yaers, datestart)), dateend) + 1

If days < 0 Then

months = months + (-1)

days = 30 - Abs(days)

End If

If months < 0 Then

yaerstemp = Int((yaers * 12 + months) / 12)

months = (yaers * 12 + months) Mod 12

yaers = yaerstemp

End If

If days = 31 Then

months = months + 1

days = 0

ElseIf days = 29 And Month(dateend) = 2 And (Year(dateend) Mod 4) = 0 Then

days = 0

months = months + 1

ElseIf days = 28 And Month(dateend) = 2 And (Year(dateend) Mod 4) <> 0 Then

days = 0

months = months + 1

End If

If months >= 11 Then

yaers = yaers + 1

months = 0

End If

txtyaers = yaers

TxtMonths = months

TxtDays = days

End If

End Sub

..

ملاحظه يمكن ترجمة هذه الوظيفه الى مكتبة DLL بحيث يمكن استخدامه في التطبيقات بكل سهوله

=====================alroqy=====================

تم بحمد لله هذا كود البرنامج مع تمنياتي لكم بالتوفيق

لا تـنسوا الملاحظات وإضافة العديد من المزايا

////////////////////////////----------

ترقبوا بمشيئ الله تعالي المزيد من البرامج ((((مع الشفره المصدريه لها)))

تحياتي لكم.

#7

مشكور الف

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…