الباشـــا
20/11/09, 12 :06 12:06:20 PM
بسم الله الرحمن الرحيم . في هذا الموضوع الخفيف سنتعرض للعديد من المواضيع التي تتعلق بالوقت والتاريخ نتمنى إن شاء الله أن تكون هناك فائدة للجميع . *أولاً : عرض الوقت في Label أو غيره بالطريقة القياسية - وكذلك التاريخ :* الأمر بسيط جداً ... كل ما عليك هو وضع Timer وتغيير خاصية Interval = 1000 مثلاً للوقت وأكثر للتاريخ ، ومن ثم كتابة الأمر التالي : Code:--------- Label1.Caption = DateTime---------ومن ثم ضع . ستظهر لك قائمة من الطرق هذا تفصيل أهمها : Code:---------Date : 07/07/2003Date$ : 07-07-2003Now : 07/07/2003 04:37:21 صTime : 04:38:30 صTime$ : 16:38:46---------هناك أيضاً Timer : تعود بعدد الثواني من منتصف الليل وحتى الوقت الحالي ... ويمكن أن تستفيد منها بأكثر من طريقة .* ملاحظة : في كل ما سبق يمكن كتابته مباشرة دون كتابة DateTime . *ثانياً : عرض جزء من الوقت أو التاريخ ( سنة - شهر - يوم - ساعة - دقيقة - ثانية )* بنفس الطريقة السابقة أو بغيرها من الطرق ولكن يصبح الكود بالشكل التالي ( للثانية مثلاً ) . Code:---------Text1.Text = Second(Now)---------غير المكتوب بالأحمر حسب المطلوب ليصبح ( Minute - Hour - Day - Month - Year ) .ويمكنك استخراج هذه القمية من قيمة أخرى مرسلة بالشكل التالي على سبيل المثال . Code:---------Dim A1A1 = "12/11/1424"Msgbox Day(A1)---------ثا*لثاً : عرض التاريخ الهجري والميلادي الحاليين :* يتم ذلك بتحويل طريقة التاريخ بالشكل التالي للهجري : Code:---------VBA.Calendar = vbCalHijri---------وللميلادي : Code:---------VBA.Calendar = vbCalGreg---------ومن ثم كتابة أمر التاريخ بصورة طبيعية كما يلي : Code:---------Text1.Text = DateTime.Date--------- *رابعاً التحويل بين التاريخين الهجري والميلادي :* نكتب هذه الدالة في موديول : Code:---------Public Function TransDate(thedate As Date, TypeTrans As Integer) As StringDim TempDate As String, MD As Date, a As StringIf TypeTrans = 1 Then VBA.Calendar = vbCalHijri TempDate = CStr(thedate) TransDate = TempDate VBA.Calendar = vbCalGreg Text1 = TransDateElse a = CStr(thedate) VBA.Calendar = vbCalHijri MD = CDate(a) VBA.Calendar = vbCalGreg TransDate = CStr(Format(MD, "yyyy/mm/dd")) txtdateofenglish = TransDateEnd IfEnd Functionومن ثم في زر الأمر ( للتحويل من ميلادي إلى هجري )Dim Date1Date1 = TransDate(Text1, 1)MsgBox Format(Date1, "DD/MM/YYYY")وللتحويل من هجري إلى ميلادي :Dim Date1Date1 = TransDate(Text1, 2)MsgBox Format(Date1, "DD/MM/YYYY")---------*خامساً : معرفة اليوم من الأسبوع .* نضع هذا الأمر في المكان المطلوب : Code:---------Dim Day_Now As IntegerDay_Now = Weekday(Date)If Day_Now = 1 Then Label1 = "الأحد"If Day_Now = 2 Then Label1 = "الاثنين"If Day_Now = 3 Then Label1 = "الثلاثاء"If Day_Now = 4 Then Label1 = "الأربعاء"If Day_Now = 5 Then Label1 = "الخميس"If Day_Now = 6 Then Label1 = "الجمعة"If Day_Now = 7 Then Label1 = "السبت"---------*سادساً : عمل ساعة بسيطة بعقارب* ضع تايمر وغير Intrval = 1000 واجعل وحدة قياس الفورم Pixel ثم اكتب ما يلي . Code:---------Dim x, y, w, mPrivate Sub Form_Load()y = Me.Height / 2 'تحديد نقطة منتصف الفورمx = Me.Width / 2 'تحديد نقطة منصف الفورمw = 1700End SubPrivate Sub Timer1_Timer()Me.Cls 'مسح ما في الفورمDrawWidth = 4: Me.Circle (x, y), w 'رسم دائرة قطرها 1700 هي قيمة w DrawWidth = 4: Me.Line (x, y)-(x + (900 * Sin(Hour(Now) * 3.1415 / 6)), y - (900 * Cos(Hour(Now) * 3.1415 / 6))), &HFFFF00 ' رسم عقرب الساعاتDrawWidth = 3: Me.Line (x, y)-(x + (1200 * Sin(Minute(Now) * 3.1415 / 30)), y - (1200 * Cos(Minute(Now) * 3.1415 / 30))), vbYellow 'رسم عقرب الدقائقDrawWidth = 1: Me.Line (x, y)-(x + (1500 * Sin(Second(Now) * 3.1415 / 30)), y - (1500 * Cos(Second(Now) * 3.1415 / 30))), vbRed 'رسم عقرب الثوانيEnd Sub---------*سابعاً : معرفة الوقت المنقضي على تشغيل الجهاز :* نكتب في موديول ما يلي : Code:---------Declare Function GetTickCount Lib "kernel32" () As Long---------ومن ثم نكتب في زر الأمر : Code:--------- Dim Minutes As LongDim Hours As LongDim My_Time As LongMy_Time = GetTickCountHours = ((lngCount / 1000) / 60) / 60Minutes = ((lngCount / 1000) / 60) Mod 60MsgBox Hours & ":" & Minutes---------*ثامناً : أداة Calendar .* لاضافتها قم بالضغط على Ctrl + T ومن ثم اختيار Microsoft Calendar Control 10.0 أو أي اصدار آخر .ومن ثم قم برسمها على الفورم ، وستجد بها العديد من الخيارات وأهمها ( هذه الخيارات أغلبها في Custem ) .* Value : لتحديد التاريخ المطلوب ومنه يمكن ضبطها بوضع الأمر التالي : Code:---------Calendar1.Value = DateTime.Calendar--------- * First Day : لتحديد اليوم الأول من الأسبوع .* Day Length - Month Length : لتحديد طريقة عرض اليوم والشهر .* Grid Call Efect : لاختيار طريقة من ثلاث طرق للعرض باختلاف التحديد .ستجد أيضاً العديد من الخيارات لاظهارها واخفائها تحت بند Show .ومن ثم في Font ستجد ثلاثة أنواع : خط ( اليوم من الأسبوع - الأرقام الخاصة بأيام الشهر - العنوان ) .وفي Color ستجد لون ( الخلفية - اليوم من الأسبوع - الأيام من الشهر - شيء ما لا أعرفه - العنوان ) .أما عن الأوامر التي يمكن استخدامها فمنها:NextDay - NextMonth - NextWeek - NextYear ( اليوم - الأسبوع - الشهر - السنة ) التالية .وعكسها : PreviousDay - PreviousMonth - PreviousWeek - PreviousYear *تاسعا : عمل مؤقت ليدق جرس عند مدة معينة :* الامر ليس صعباً ، فكل ما في الأمر هو وضع Timer واختبار الوقت بالشكل التالي :If Text1.Text = DateTime.Time Then Ringحيث أن Text1 تحتوي على الوقت المطلوب ، و Ring هو حدث ليدق جرس أو لتظهر رسالة . *عاشراً : تغيير وقت الكومبيوتر :* اكتب الوقت الذي تريده في Text1 مثلاً ثم اكتب الأمر التالي فقط :DateTime.Time = text1.Text *الحادي عشر : عمل ستوب ووتش :* الأمر بسيط جداً ... ضع أربع مربعات نص Text1,Text2,Text3,Text4 ثم ضع الأمر التالي في Timer بعد ضبط خاصية Intrval = 100 : Code:---------Text4 = Text4 + 1If Text4 = 9 ThenText3 = Text3 + 1Text4 = 0End IfIf Text3 = 59 ThenText2 = Text2 + 1Text3 = 0End IfIf Text2 = 59 ThenText1 = Text1 + 1Text2 = 0End If---------وفي زر Stop اكتب : Code:---------Timer1.Enabled = False---------وفي زر 00:00 اكتب : Code:---------Text1.Text = 0 : Text2.Text = 0 : Text3.Text = 0 : Text4.Text = 0---------* تذكر أنك تستطيع أن تكتب أكثر من سطر في نفس السطر عن طريق تفريق الأسطر بواسطة نقطتين فوق بعضها : . *الثاني عشر : عمل عداد تنازلي :* اكتب في GenralDim My_Timeوضع Timer وغير interval إلى 1000 وخاصية Enabled = False .ضع Text1 للثواني Text2 للدقائق Text3 للساعات ، وفي زر الأمر ضع الامر التالي : Code:---------My_Time = Text1 + ( Text2 * 60 ) + ( Text3 * 60 *60 )Timer1.Enabled = True---------وفي التايمر ضع الأمر التالي : Code:---------My_Time = My_Time - 1If My Time