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

مطلوب عمل ساعه رقميه

مغلق
بدأه اسامه حمدان في 11 ديسمبر 2007 · 5 رد · 1,345 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله وبركاته

والله يا جماعه كنت باعمل مشروع والحمد لله كملتوا لكن وقفت معايا مشكله وهى

ان المشروع لازم يكون فى ساعه بتعد عكسى يعنى55,56,57,58,59,..............,1,2

ولما توصل للصفر تعد من تانى 59 والدقايق تنقص بمعدل 1 يعنى ساعه عاديه لكن بالعكس

علما بان الثوانى والدقايق والساعه المستخدم اللى حايدخل بيناتها ويضغط على زر يبا العد التنازلى

وجزاكم لله خيرا .....وياريت يا جماعه تساعدونى علشان اخلص البرنامج

#2

ان شاء الله بفكر فيها..اعتقد فى احد الكتب اللى عندى فيه مثال مشابه

#3

ربنا معاكى يابشمهندسه الحقينى بالحل بالله :tantrum: را

وجزاكى الله خي

تم تعديل هذه المشاركة بواسطة عماد الخليل في 11 ديسمبر 2007 في 21:19

#4

أنا مجربتش اعمل CountDown Timer فى الدوت نت بس انا عملته بالفيجوال بيسك 6 انا هقولك على فكرته و هكتبلك الكود و انت حاول تطبقه من جوا الدوت نت

Dim Countdown As Date
Dim Secs As Long

Private Sub Form_Load()

  Secs = 10820	' Number of seconds in all time  , see hint below
  Countdown = DateAdd("s", Secs, Now)

End Sub

'Interval=1000, Enable=True
Private Sub Timer1_Timer()
	Dim txt As String

	if Label1.Caption="00:00:00" then Timer1.Enabled=False
	txt = Format$(Countdown - Now, "hh:mm:ss")
	Label1.Caption = txt  ' the place where we will see result

End Sub

الفكره قايمه على انى بعرف الراجل عايز يبدء العد التنازلى من الوقت كام و باخد الوقت ده و بحوله لثوانى بمعنى الراجل عايز يبدء العد من الوقت 03:00:20 لحد ما يوصل للوقت 00:00:00

كل اللى انا بعمله هو التالى

باخد عدد الساعات و بضربه فى الرقم 60 مرتين لإنى لما أضرب عدد الساعات فى الرقم 60 مرة واحدة هيدينى عدد الدقائق الموجوده فى الـ 3 ساعات اما لما اضرب عدد الساعات فى الرقم 60 مرتين هيدينى عدد الثوانى.

int HourInSecond;

HourInSecond= 3 * 60 * 60;  //10800 second

نفس الكلام بينطبق على عدد الدقائق بس المره دى زى ما اعتقد انك فهمت فى الرقم 60 مرة واحدة بس

int MinInSecond;

MinInSecond= 0 * 60;  //0 second

اما بالنسبه للثوانى فمش هنكون محتاجين نعدل فيها حاجه

دلوقتى كل اللى هنعمله اننا نجمع عدد الثوانى بتاعت الساعات و الدقائق و الثوانى مع بعض

int Secs;
Secs=HourInSecond + MinInSecond + 0;

بعد كده انا عملت متغير أسمه Countdown و نوعه Date و بستخدم الدالة DateAdd و فيها بقول ضيف الرقم الموجود فى المتغير Secs إلى الوقت الحالى و الإضافة تكون بالثوانى لإنى أستخدمت الحرف "s" فى اول الدالة و يعنى seconds "راجع الـ MSDN الخاصه بالـ VB6"

دلوقتى المتغير Countdown تاريخ النهارده و الوقت الحالى بالإضافه للوقت الخاص بنا.

داخل التيمر انا بتأكد من أن اليبل قيمته "00:00:00" علشان اوقف التيمر

بعد كده بستدعى الدالة Format و ببعتلها القيمة CountDown - Now

الدالة Format بتستخدم فى تعديل شكل المخرجات بالـ pattren إللى انت بتحدده بعد الكومة

لو نفتكر الدالة CountDown جواها الوقت بتاع الجاهز + الفترة اللى احنا عايزنها

كل اللى انا بقوله داخل الدالة Format أطرح الوقت اللى متسجل فى الـ CountDown من الوقت الحالى و قم بإرجاع النتيجة على الشكل "hh:mm:ss" و كما تلاحظ فهو شكل اظهار الوقت

و بعد كده بظهر النتيجة فى أداة Label1

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#5
اقتباس
ربنا معاكى يابشمهندسه الحقينى بالحل بالله را

يااااه مهندسة حته وحدة....حدث و لا حرج انى مهندسة فى البطاقة الشخصية فقط

عموما انا عملت لك المطلوب و اعذرنى لانى عملته بنفسى لان مثال الكتاب طلع مختلف جدا

لذلك اعذرنى اذا كان مثالى فيه اخطاء لانه اجتهاد شخصى

هو شغال لكن اذا دخلت له ساعة اكبر من 12 يعمل لك Exception

فلو قدرت تشوف طريقة تحدد الساعة المدخلة لا تزيد عن 12 يبقى كويس

Clock_heba22.rar

تم تعديل هذه المشاركة بواسطة heba_22 في 11 ديسمبر 2007 في 22:00

#6

طبعا بشمهندسه.... طبعا جدا

وعلى العموم هاجرب الفكره وان شاء الله تنجح

وجزاكى الله خيرا على المجهود الرائع والله

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

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