تابعنا :

الخميس، 8 ديسمبر 2011

كل ما تريد معرفته عن الوقت - التاريخ - والأدوات المتعلقة بهما




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

أولاً : عرض الوقت في Label أو غيره بالطريقة القياسية - وكذلك التاريخ :

الأمر بسيط جداً ... كل ما عليك هو وضع Timer وتغيير خاصية Interval = 1000 مثلاً للوقت وأكثر للتاريخ ، ومن ثم كتابة الأمر التالي :


الكود:
Label1.Caption = DateTime
ومن ثم ضع . ستظهر لك قائمة من الطرق هذا تفصيل أهمها :
Date : 07/07/2003

الكود :
Date$ : 07-07-2003
Now : 07/07/2003 04:37:21 ص
Time : 04:38:30 ص
Time$ : 16:38:46
هناك أيضاً Timer : تعود بعدد الثواني من منتصف الليل وحتى الوقت الحالي ... ويمكن أن تستفيد منها بأكثر من طريقة .
ملاحظة : في كل ما سبق يمكن كتابته مباشرة دون كتابة DateTime .

ثانياً : عرض جزء من الوقت أو التاريخ ( سنة - شهر - يوم - ساعة - دقيقة - ثانية 

)بنفس الطريقة السابقة أو بغيرها من الطرق ولكن يصبح الكود بالشكل التالي ) للثانية مثلاً  .

الكود :
Text1.Text = Second(Now)
غير المكتوب بالأحمر حسب المطلوب ليصبح ( Minute - Hour - Day - Month - Year ) .
ويمكنك استخراج هذه القمية من قيمة أخرى مرسلة بالشكل التالي على سبيل المثال .

الكود :
Dim A1
A1 = "12/11/1424"
Msgbox Day(A1)

ثالثاً : عرض التاريخ الهجري والميلادي الحاليين :

يتم ذلك بتحويل طريقة التاريخ بالشكل التالي للهجري :

الكود :
VBA.Calendar = vbCalHijri
وللميلادي :

الكود :
VBA.Calendar = vbCalGreg
ومن ثم كتابة أمر التاريخ بصورة طبيعية كما يلي :

الكود :
Text1.Text = DateTime.Date

رابعاً التحويل بين التاريخين الهجري والميلادي :

نكتب هذه الدالة في موديول :

الكود :
Public Function TransDate(thedate As Date, TypeTrans As Integer) As String
Dim TempDate As String, MD As Date, a As String
If TypeTrans = 1 Then
    VBA.Calendar = vbCalHijri
    TempDate = CStr(thedate)
    TransDate = TempDate
    VBA.Calendar = vbCalGreg
    Text1 = TransDate
Else
    a = CStr(thedate)
    VBA.Calendar = vbCalHijri
    MD = CDate(a)
    VBA.Calendar = vbCalGreg
    TransDate = CStr(Format(MD, "yyyy/mm/dd"))
    txtdateofenglish = TransDate
End If
End Function
ومن ثم في زر الأمر  للتحويل من ميلادي إلى هجرى
Dim Date1
Date1 = TransDate(Text1, 1)
MsgBox Format(Date1, "DD/MM/YYYY")
وللتحويل من هجري إلى ميلادي 
Dim Date1
Date1 = TransDate(Text1, 2)
MsgBox Format(Date1, "DD/MM/YYYY")

خامساً : معرفة اليوم من الأسبوع .

نضع هذا الأمر في المكان المطلوب :

الكود:
Dim Day_Now As Integer
Day_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 ثم اكتب ما يلي .

الكود :
Dim x, y, w, m
Private Sub Form_Load()
y = Me.Height / 2 'تحديد نقطة منتصف الفورم
x = Me.Width / 2 'تحديد نقطة منصف الفورم
w = 1700
End Sub
Private 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

سابعاً : معرفة الوقت المنقضي على تشغيل الجهاز :

نكتب في موديول ما يلي :

الكود :
Declare Function GetTickCount Lib "kernel32" () As Long
ومن ثم نكتب في زر الأمر :

الكود :
Dim Minutes As Long
Dim Hours As Long
Dim My_Time As Long
My_Time = GetTickCount
Hours = ((lngCount / 1000) / 60) / 60
Minutes = ((lngCount / 1000) / 60) Mod 60
MsgBox Hours & ":" & Minutes

ثامناً : أداة Calendar .

لاضافتها قم بالضغط على Ctrl + T ومن ثم اختيار Microsoft Calendar Control 10.0 أو أي اصدار آخر .
ومن ثم قم برسمها على الفورم ، وستجد بها العديد من الخيارات وأهمها هذه الخيارات أغلبها في Custem  .
* Value
لتحديد التاريخ المطلوب ومنه يمكن ضبطها بوضع الأمر التالي :

الكود :
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 :
رمز برمجي:
Text4 = Text4 + 1
If Text4 = 9 Then
Text3 = Text3 + 1
Text4 = 0
End If
If Text3 = 59 Then
Text2 = Text2 + 1
Text3 = 0
End If
If Text2 = 59 Then
Text1 = Text1 + 1
Text2 = 0
End If
وفي زر Stop اكتب :

الكود :
Timer1.Enabled = False
وفي زر 00:00 اكتب :

الكود :
Text1.Text = 0 : Text2.Text = 0 : Text3.Text = 0 : Text4.Text = 0
* تذكر أنك تستطيع أن تكتب أكثر من سطر في نفس السطر عن طريق تفريق الأسطر بواسطة نقطتين فوق بعضها (:) .

الثاني عشر : عمل عداد تنازلي :

اكتب في Genral
Dim My_Time
وضع Timer وغير interval إلى 1000 وخاصية Enabled = False .
ضع Text1 للثواني Text2 للدقائق Text3 للساعات ، وفي زر الأمر ضع الامر التالي :

الكزد :
My_Time = Text1 + ( Text2 * 60 ) + ( Text3 * 60 *60 )
Timer1.Enabled = True

وفي التايمر ضع الأمر التالي :

الكزد :
My_Time = My_Time - 1
If My Time <= 0 Then
 Timer1.Enabled = False
 Ring
End If
حيث Ring حدث تقوم أنت بوضعه حسبما تريد .
وعند زر Stop اكتب :

الكود :
Timer1.Enabled = False

الثالث عشر : اضافة يوم - شهر - تاريخ ( إلى تاريخ معين ) - وكذلك الوقت .

نستخدم في ذلك الدالة DateValue ويمكننا أن نكتب قبلها DateTime. أولا لا كما نريد ... ومثال لاضافة يوم .

الكود :
MsgBox DateTime.DateValue(Now + 2)

الرابع عشر : جمع التواريخ وطرحها واضافة أيام وشهور إليها :

الصيغة العامة لأمر اضافة أيام هي ما يلي :

الكود :
Text1.Text = DateAdd ( "اضافة إلى","العدد","اضافة")
اضافة ( إما D للايام أو M للشهور أو YYY للأيام
فمثلاً لاضافة يومين إلى التاريخ الحالي :

الكود :
Text1.Text = DateAdd ("D",2,Now)
وهكذا ...
أما لطرح تاريخين فمثلاً نكتب الأمر التالي

الكود :
Msgbox DateDiff("M","12/11/2001","11/08/2003)

حيث M ليخرج الناتج بالشهور كما سبق


الخامس عشر : معرفة الشهر من السنة :

نستخدم الدالة MonthName بالشكل التالي

الكود :
Msgbox MonthName(4)
وسيكون الناتج حسب النظام المعتمد من Vba

0 التعليقات:

إرسال تعليق

ما هو رايكم فى المدونة ؟ او يتم الاقتراح لاضافة اشياء اخرى ؟

Related Posts Plugin for WordPress, Blogger...