• 0
فهد الحليصي

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

سؤال

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

5 إجابة على هذا السؤال .

  • 0

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

 

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

 

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

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

مثلاً:

Dim Salary As SingleDim Interval As LongDim MyVar1 As VariantDim 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 SingleDim Mark2 As SingleDim Total As SingleMark1 = CSng(Text1.Text)Mark2 = CSng(Text2.Text)Total = Mark1 + Mark2Text3.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

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

إجابة السؤال الأول: نفرض أنه توجد 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 IfEnd Sub

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

 

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

إجابة السؤال الثاني: ضع على الـ 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 SubPrivate Sub Command2_Click()    Timer1.Enabled = Not Timer1.EnabledEnd SubPrivate Sub Form_Load()    Command1.Caption = "إعادة ضبط"    Command2.Caption = "تشغيل/إيقاف"    Command1_ClickEnd SubPrivate 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

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

 

Dim Interval As Long

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

 

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

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

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

Timer1.Enabled = Not Timer1.Enabled

 

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .