تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كل ما تريد معرفته عن الوقت
#1
مقاله للاخ : حامد الهادى عيد

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

-------------------------------------

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

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


رموز PHP:
Label1.Caption = DateTime


ومن ثم ضع . ستظهر لك قائمة من الطرق هذا تفصيل أهمها :

رموز PHP:
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 .

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

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


رموز PHP:
Text1.Text = Second(Now)


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

رموز PHP:
Dim A1
A1
= "12/11/1424"
Msgbox Day(A1)


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

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


رموز PHP:
VBA.Calendar = vbCalHijri


وللميلادي :


رموز PHP:
VBA.Calendar = vbCalGreg


ومن ثم كتابة أمر التاريخ بصورة طبيعية كما يلي :


رموز PHP:
Text1.Text = DateTime.Date


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

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

رموز PHP:
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

ومن ثم في زر الأمر ( للتحويل من ميلادي إلى هجري )

رموز PHP:
Dim Date1
Date1
= TransDate(Text1, 1)
MsgBox Format(Date1, "DD/MM/YYYY")
وللتحويل من هجري إلى ميلادي :
Dim Date1
Date1
= TransDate(Text1, 2)
MsgBox Format(Date1, "DD/MM/YYYY")

وللتحويل من هجري إلى ميلادي :

رموز PHP:
Dim Date1
Date1
= TransDate(Text1, 2)
MsgBox Format(Date1, "DD/MM/YYYY")

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

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

رموز PHP:
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

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

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

ومن ثم نكتب في زر الأمر :
رموز PHP:
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 : لتحديد التاريخ المطلوب ومنه يمكن ضبطها بوضع الأمر التالي :


رموز PHP:
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 واختبار الوقت بالشكل التالي :

رموز PHP:
If Text1.Text = DateTime.Time Then Ring



حيث أن Text1 تحتوي على الوقت المطلوب ، و Ring هو حدث ليدق جرس أو لتظهر رسالة .

عاشراً : تغيير وقت الكومبيوتر :

اكتب الوقت الذي تريده في Text1 مثلاً ثم اكتب الأمر التالي فقط :

رموز PHP:
DateTime.Time = text1.Text



الحادي عشر : عمل ستوب ووتش :

الأمر بسيط جداً ... ضع أربع مربعات نص Text1,Text2,Text3,Text4 ثم ضع الأمر التالي في Timer بعد ضبط خاصية Intrval = 100 :

رموز PHP:
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 اكتب :


رموز PHP:
Timer1.Enabled = False


وفي زر 00:00 اكتب :


رموز PHP:
Text1.Text = 0 : Text2.Text = 0 : Text3.Text = 0 : Text4.Text = 0

* تذكر أنك تستطيع أن تكتب أكثر من سطر في نفس السطر عن طريق تفريق الأسطر بواسطة نقطتين فوق بعضها : .

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

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

رموز PHP:
My_Time = Text1 + ( Text2 * 60 ) + ( Text3 * 60 *60 )
Timer1.Enabled = True

وفي التايمر ضع الأمر التالي :
رموز PHP:
My_Time = My_Time - 1
If My Time <= 0 Then
Timer1
.Enabled = False
Ring
End
If

حيث Ring
حدث تقوم أنت بوضعه حسبما تريد .
وعند زر Stop اكتب :


رموز PHP:
Timer1.Enabled = False


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

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


رموز PHP:
MsgBox DateTime.DateValue(Now + 2)


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

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


رموز PHP:
Text1.Text = DateAdd ( "اضافة إلى","العدد","اضافة")


اضافة ( إما D للايام أو M للشهور أو YYY للأيام
فمثلاً لاضافة يومين إلى التاريخ الحالي :


رموز PHP:
Text1.Text = DateAdd ("D",2,Now)


وهكذا ...
أما لطرح تاريخين فمثلاً نكتب الأمر التالي


رموز PHP:
Msgbox DateDiff("M","12/11/2001","11/08/2003)

رموز PHP:
[font=Tahoma][color=darkgreen][/color][/font]

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

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

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


رموز PHP:
Msgbox MonthName(4)


وسيكون الناتج حسب النظام المعتمد من Vba

----------------------------------
هذه المقالة منقولة ولكننى لا اتذكر من أين
اللهم اجزى كاتب هذا المقال خيرا
واجزنا خيرا يارب العالمين
الرد }}}
تم الشكر بواسطة: المبرمج الطـــموح , Ksa004
#2
مشكور على المجهود
الرد }}}
تم الشكر بواسطة:
#3
(03-11-12, 03:56 AM)pico كتب : مشكور على المجهود

السلام عليكم ورحمه الله وبركاته 
اخي العزيز ارجوك مساعدتي اني اريد أن عندما نختار تاريخ معين بDatePicker1 يظهر ب tEXT  اسم اليوم المختار اذا كان سبت او حد أواثنين أو أو أو 
ولك مني جزير الشكر 
الرد }}}
تم الشكر بواسطة:
#4
(22-02-15, 01:08 AM)رجل الكهرباء كتب :
(03-11-12, 03:56 AM)pico كتب : مشكور على المجهود

السلام عليكم ورحمه الله وبركاته 
اخي العزيز ارجوك مساعدتي اني اريد أن عندما نختار تاريخ معين بDatePicker1 يظهر ب tEXT  اسم اليوم المختار اذا كان سبت او حد أواثنين أو أو أو 
ولك مني جزير الشكر 

السلام عليكم
في المرفق تجد ما طلبته 


الملفات المرفقة
.rar   تحديد اليوم.rar (الحجم : 1.69 ك ب / التحميلات : 83)
   تحيــــــــــــــــــــــــــــاتي لكـــــــــــــــــــم    
الرد }}}
تم الشكر بواسطة: Ksa004 , جاسم عبد , جاسم عبد
#5
شكرا أخى الطيب وجذاك الله خير ما تفعلة معنا من مساعدات قيمة
ولى عندك سؤال أخر كيف عمل كود لحساب الفرق بين تاريخين بمعنا لو هناك موظف اخد اجازة يوم 1/1/2015 وعاد الى العمل يوم 3/1/2015 فأريد كود يحسب عدد ايام هذة الاجازة
واعزك اللةاخى وجعلك مصباح علم يضئ لكل من يريد التعلم
الرد }}}
تم الشكر بواسطة:
#6
السلام عليكم

ان شاء الله يكون طلبك في المرفقات

يعطيك العافية


الملفات المرفقة
.rar   date.rar (الحجم : 1.31 ك ب / التحميلات : 90)
(( يَا أَيَّتُهَا النَّفْسُ الْمُطْمَئِنَّةُ ارْجِعِي إِلَى رَبِّكِ رَاضِيَةً مَرْضِيَّةً فَادْخُلِي فِي عِبَادِي وَادْخُلِي جَنَّتِي ))

الرد }}}
تم الشكر بواسطة: Ksa004
#7
جزاكم الله خير ونفع بكم وزادكم علما
الموضوع في غاية الاهميه ويحتاجه الجميع

بس لاحظت ان تحويل التاريخ من ميلادي الى هجري يكون التاريخ الهجري زائدا بيوم واحد
هل من حل لهذه المشكله
 Exclamation (سبحان الله العظيم سبحان الله وبحمده) Exclamation
الرد }}}
تم الشكر بواسطة:
#8
الله يعطيك العافيه مفيد جداً
سبحان الله وبحمده .. سبحان الله العظيم
الرد }}}
تم الشكر بواسطة:
#9
مشكورين بارك الله فيكم ...
الرد }}}
تم الشكر بواسطة:



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


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