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

اضافة عدد ايام إلى تاريخ ما

مغلقمُجاب
بدأه فهد الحليصي في 11 أبريل 2013 · 5 رد · 2,991 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني
انا مبتدئ في الفيجول بيسك6
وواجهتني صعوبات مع الوقت والتاريخ أهمها :

عندي مربع نص ( text1.text اريد المستخدم أن يدخل تاريخ ما ( باليوم والشهر والسنه )
وفي مربع نص ثاني يدخل رقم معين يمثل عدد ايام وتظهر النتيجه عند ضغط زر كوماند جمع عدد
الايام مع التاريخ مثال
التاريخ 28 / 12 / 2013 + 7 ايام = ؟

ايضا اريد عداد وقت تصاعدي يبدأ من الصفر ويحسب إلى 60 ثانيه ثم يضيف هذه الثواني إلى الدقائق وإذا وصل 60 دقيقه يضيفها كذلك إلى الساعات

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

#2

السلام عليكم...

 

إجابة السؤال الأول: نفرض أنه توجد 3 مربعات نص: Text1 للتاريخ، Text2 لعدد الأيام المضافة (أو المطروحة)، Text3 للناتج.

 

Private Sub Command1_Click()
    Dim MyDate As Date
    Dim Interval As Long
    
    If Not IsDate(Text1.Text) Then
        MsgBox "الرجاء إدخال التاريخ بشكل صحيح"
        Text1.SetFocus
    ElseIf Not IsNumeric(Text2.Text) Then
        MsgBox "الرجاء إدخال عدد الأيام بشكل صحيح"
        Text2.SetFocus
    Else
        MyDate = CDate(Text1.Text)
        Interval = CLng(Text2.Text)
        MyDate = DateAdd("d", Interval, MyDate)
        Text3.Text = CStr(MyDate)
    End If
End Sub

إذا أدخلت في خانة عدد الأيام (Text2) عدداً سالباً فسوف يحسب التاريخ نحو الماضي، أي يطرح الأيام من التاريخ.

2

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#3

السلام عليكم...

 

إجابة السؤال الثاني: ضع على الـ Form ثلاث Labels بجانب بعضها: Label1 للثواني، Label2 للدقائق، Label3 للساعات. و أضف 2 من الـ CommandButtons.

و أخيراً أضف Timer و اضبط الخاصية Enabled له على False و الخاصية Interval على 1000.

 

انسخ الكود التالي و ألصقه كما هو:

Private Sub Command1_Click()
    Timer1.Enabled = False
    Label1.Caption = "00"
    Label2.Caption = "00"
    Label3.Caption = "0"
End Sub

Private Sub Command2_Click()
    Timer1.Enabled = Not Timer1.Enabled
End Sub

Private Sub Form_Load()
    Command1.Caption = "إعادة ضبط"
    Command2.Caption = "تشغيل/إيقاف"
    Command1_Click
End Sub

Private Sub Timer1_Timer()
    Dim H As Long, M As Long, S As Long
    
    S = CLng(Label1.Caption)
    M = CLng(Label2.Caption)
    H = CLng(Label3.Caption)
    S = S + 1
    If S = 60 Then
        S = 0
        M = M + 1
        If M = 60 Then
            M = 0
            H = H + 1
        End If
    End If
    Label1.Caption = Format(S, "00")
    Label2.Caption = Format(M, "00")
    Label3.Caption = CStr(H)
End Sub
3

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#4

مشكور اخي الكريم 

 زادك الله علما وتواضعا ونفع بك

الكود شغال ومضبوط بعد التجربه وأتمنى

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

 

Dim Interval As Long

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 

Not IsDate  -  Text1.SetFocus - IsNumeric  - CDate  -  CLng - CStr

ــــــــــــــــــــــــــــــــــــــــــــــــ

اما الكود الثاني فلم افهم مايلي :-

Timer1.Enabled = Not Timer1.Enabled

 

انا اعرف اني ثقلت عليكم لكن كما تعرفون صاحب الحاجه ارعن , واحسن الناس أنفعهم للناس

بارك الله فيكم جميعا

ـــــــــــــــــــــــــــــــــــــــــــــــــــــ

#5 أفضل إجابة

السلام عليكم...

 

مرحباً بك على كل حال...

 

1. جملة Dim هي جملة للتصريح عن متغير و تحديد نوعه. و صيغتها العامة المختصرة كالتالي:

Dim اسم_المتغير As نوع_المتغير

مثلاً:

Dim Salary As Single
Dim Interval As Long
Dim MyVar1 As Variant
Dim MyVar2

فالجملة الأولى تعرف متغيراً اسمه Salary و نوعه Single.

و الجملة الثانية تعرف متغيراً اسمه Interval و نوعه Long.

و الجملة الثالثة تعرف متغيراً اسمه MyVar1 من النوع Variant الذي يقبل أي نوع من البيانات.

و الجملة الرابعة تعرف متغيراً اسمه MyVar2 و لكن مانوعه؟ - إذا لم نحدد نوع المتغير (لم نستعمل As و ما بعدها) فإن المتغير يكون من النوع المتنوع (Variant) و هذا يعني أن كلمة As و النوع اختياريان.

 

2. في VB6 هناك مجموعة من دوال التحزيل، و هي كالتالي:

 * الدالة CStr: تحول التعبير الممرر إليها إلى String.

 * الدالة CLng: تحول التعبير الممرر إليها إلى Long.

 * الدالة CInt: تحول التعبير الممرر إليها إلى Integer.

 * الدالة CSng: تحول التعبير الممرر إليها إلى Single.

 * الدالة CDbl: تحول التعبير الممرر إليها إلى Double.

 * الدالة CDate: تحول التعبير الممرر إليها إلى Date.

 

مثلاً إذا كان لدينا تاريخ مكتوب في مربع نص. نحن ننظر إليه كتاريخ، لكن البرنامج ينظر إليه كمجرد نص (String). و عندما تريد من البرنامج أن يعامل ذلك الـ String كتاريخ فإننا نحوله إلى تاريخ:

Dim MyDate As DateMyDate = CDate(Text1.Text)

 

و مثلاً أيضاً لو كان عندي مربعا نص فيهما درجتان لطالب - مثلاً 65.5 و 85.0 - فالبرنامج ينظر إليهما كنص عادي (String) و إذا كتبنا:

Text3.Text = Text1.Text + Text2.Text

فإننا سنحصل في Text3 على 65.585.0 أي أنه سيضم النصين معاً، و هذه نتيجة خاطئة. هنا نحتاج أيضاً إلى دوال التحويل:

Dim Mark1 As Single
Dim Mark2 As Single
Dim Total As Single

Mark1 = CSng(Text1.Text)
Mark2 = CSng(Text2.Text)
Total = Mark1 + Mark2
Text3.Text = CStr(Total)

أو باختصار:

Text3.Text = CStr(CSng(Text1.Text) + CSng(Text2.Text))

3. دوال التأكد من النوع:

* الدالة IsNumeric تتأكد من أن القيمة الممررة لها تمثل عدداً مقبولاً أم لا. إذا كانت القيمة عبارة عن عدد فإن الدالة تعيد True و إلا فإنها تعيد False.

* الدالة IsDate تتأكد من أن القيمة الممررة لها تمثل تاريخاً مقبولاً أم لا. إذا كانت القيمة عبارة عن تاريخ صحيح فإن الدالة تعيد True و إلا فإنها تعيد False.

 

مثلاُ:

If IsDate(Text1.Text) then

تعني: إذا كان النص المكتوب في المربع Text1 يمثل تاريخاً صحيحاً إذن...

 

و بالمثل

If Not IsDate(Text1.Text) then

تعني: إذا لم يكن النص المكتوب في المربع Text1 يمثل تاريخاً صحيحاً إذن...

 

4. الوظيفة SetFocus موجودة في العديد من المكونات و ليس في الـ TextBox فقط. و هي تعني: ضع التركيز (أو البؤرة أو المؤشر) في العنصر أو المكون المذكور.

 

5. عكس القيم المنطقية:

الجملة Timer1.Enabled = Not Timer1.Enabled تعمل على تغيير حالة المؤقت (الـ Timer) فإذا كان شغالاً توقفه و إذا كان متوقفاً تشغله. المسألة بسيطة: الخاصية Enabled من النوع Boolean (المنطقي) أي تقبل قيمتين فقط هما: True (فيكون المؤقت شغالاً) أو False (فيكون المؤقت متوقفاً) و بالتالي عندما نريد فقط تبديل الحالة فإنه يكفي أن نعكس الحالة السابقة باستعمال العامل Not.

 

6. نرجو الاستفادة و السلام.

1

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#6

الله يحفظك من كل شر ويوفقك لكل خير كفيت ووفيت

شرح رائع ومتكامل بارك الله فيك

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

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

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

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

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

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