تسجيل الدخول

مشاهدة النسخة كاملة : شرح خوارزمية: اعطني تاريخا اعطيك اسم اليوم


free_voice
2012-02-20, 18:09
السّلام عليكم ورحمة الله

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





بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
في هذا الموضوع ساتحدث عن كيفية جلب اسم اليوم من تاريخ معين
اولا نقوم بصنع بناءة xDate والتي تحتوي اليوم والشهر والسنة
Structure xDate
Public Year As UInteger
Public Month As UInteger
Public Day As UInteger
End StructurePublic Shared Function GetJDDaysNo(ByVal MyDate As xDate) As Integer
Dim JD As Integer

If ((MyDate.Year > 1582) Or ((MyDate.Year = 1582) And (MyDate.Month > 10)) Or ((MyDate.Year = 1582) And (MyDate.Month = 10) And (MyDate.Day > 14))) Then
JD = Int((1461 * (MyDate.Year + 4800 + Int((MyDate.Month - 14) / 12))) / 4)
JD = JD + Int((365.5 * (MyDate.Month - 2 - 12 * (Int((MyDate.Month - 14) / 12)))) / 12)
JD = JD - Int((3 * (Int((MyDate.Year + 4900 + Int((MyDate.Month - 14) / 12)) / 100))) / 4)
JD = JD + MyDate.Day - 32075
Else
JD = 365.5 * MyDate.Year
JD = JD - Int((7 * (MyDate.Year + 5001 + Int((MyDate.Month - 9) / 7))) / 4)
JD = JD + Int((275 * MyDate.Month) / 9) + MyDate.Day + 1729777
End If
Return JD
End Function

وبعد ان قمنا بتحويل التاريخ الميلادي الى اليولياني نقوم الان بعمل دالة لمعرفة اسم اليوم
والفكرة كالتالي:
نقوم بحساب باقي قسمة عدد الايام باليولياني على 7
وان كانت تساوي 0 فاليوم يكون الاثنين وان كانت 1 فياليوم الثلاثاء وهكذا......



Shared Function GetDayName(ByVal Mydate As xDate) As String

Dim xJD As Integer = GetJDDaysNo(Mydate) Mod 7

Select Case xJD
Case 0 : Return "Monday"
Case 1 : Return "Tuesday"
Case 2 : Return "Wednsday"
Case 3 : Return "Thursday"
Case 4 : Return "Friday"
Case 5 : Return "Saturday"
Case 6 : Return "Sunday"
Case Else : Return "UnKnown"

End Select

End Function


في الدالة الاخيرة نقوم بتمرير التاريخ من نوع xDate الذي عرفناه في البداية
ثم نقوم بحساب عدد الايام باليولياني من خلال الدالة GetJDDaysNo
وبعد ذلك نرجع اسم اليوم وفق ناتج القسمة

NABIL_CABBA
2012-05-18, 16:37
merci pour cet programme ...
S.V.P jeu veux le code en delphi

سَـآجدة
2012-10-20, 23:43
شكرا لك على هذا البرنامج

nabil judo
2012-10-21, 21:43
merciiiiiiii

anbo-root
2012-10-23, 23:28
شكرااااااااااااااا

Mr.walid
2012-10-25, 11:51
بارك الله فيك

konandz
2012-10-25, 22:59
thank you very match
.................................