تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال بخصوص تقسيم ساعات اليوم ارجوا المشاركه
#1
Smile 
السلام عليكم ورحمة الله وبركاته.
اخواني اتمنى ابداء الراي والمساعدة في الاتي:

Text2.Text = 24 / Text1.Text

لو قمنا بقسمة 24/6 فان ناتج القسمة سوف تكون  4 ساعات وهذا صحيح فلو ضربنا 4*6 =24 ساعة بالتمام والكمال


ولكن لو قمنا بقسمة 24/5 فان ناتج القسمة سوف تكون 4.8 ساعة وهذا غير صحيح فالساعه عباره عن 60 دقيقه ولو نظرنا للناتج لو جدناه عباره عن 4 ساعات و80 دقيقه .؟؟؟؟

السؤال هو  بعد القسمة على 5 كيف استطيع الحصول على عدد الساعات الصيحيه باليوم..؟؟؟

ولو قمنا واهملنا باقي القسمة لوجدنا انها 4 ساعات فلو ضربنا 4*5=20 ساعه وهذا غير صحيح لان الناتج من المفترض ان يكون 24 ساعه .

               وايضا لو قمنا بتقريب  الناتج 4.8  لوجدناه عبارة عن 5 ساعات ولكن عند ضرب  5*5 = 25 ساعه وهذا خطاء فاليوم عبارة عن 24 ساعة فقط

                             فما هو الحل يا اخوان..؟؟؟

توضيح اكثر  كيف استطيع الحصول على عدد الساعات الصحيحه بعد القسمة على عدد فردي يعطي ناتج  به باقي القسمه .
الرد }}}
تم الشكر بواسطة:
#2
قم بضرب الكسر العشري في 60

مثلا لو قمنا بقسمة 24/5 فان ناتج القسمة سوف تكون 4.8 ساعة ثم أخذنا الكسر 0.8 ونقوم بضربه في 60 يصبح 48 دقيقة وهذا صحيح.
والنتيجة 4 ساعات و 48 دقيقة.
الرد }}}
#3
أيضاً لو ظهر كسر بعد حالة ضرب كسر الدقائق فيتم ضرب ذلك الكسر في 60 لاستخراج الثوان.
الرد }}}
تم الشكر بواسطة: استايل , Ashraf Elafify
#4
مرحبا اخي الوادي ويسعدني مشاركتك دائما سباق لفعل الخير وهذا من طيبك
نعم أخي الوادي أعلم أن النتيجه راح تكون 4 ساعات و48 دقيقه ولكن النتيجه غير مقنعه فلو ضربنا 4.٤٨ *5=22.4 تقريبا وهذا غير صحيح فلم نحصل على 24 ساعه فهناك ساعتان لم تقسم من اليوم
بصراحه الإعداد الفرديه بتقسيم الساعه متعبه ولم أجد لها حل سواء إهمال بعض الساعات تفاديا لوجود خطاء بساعات اليوم
الرد }}}
تم الشكر بواسطة: الوادي
#5
لا يعقل أن تضع ال 48 دقيقة ككسر
يعني كتابتك 4.48 خطأ

يعني يجب أن تعيدها 4.8

ولو تشرح الفكر والهدف من هذه العمليات
الرد }}}
تم الشكر بواسطة: عبد العزيز البسكري
#6
نعم اخي الوادي كلامك صحيح ولكن حتى لو قمنا بجمع 4:48 خمس مرات لوجدناها تعطينا نفس الناتج 22:40 تقريبا وهذا يوضح نفس الخطاء فهناك ساعتان وعشرين دقيقه ضاعت من اليوم.
المقصد اني اعمل برنامج لأحد الأصدقاء يقوم بتقسيم ساعات اليوم لمهامه اليوميه من خروج من المنزل ومن مقابلة اصدقاء وهكذا.برنامج بسيط جدا ولكن الخطاء يظهر عند قسمة الإعداد الفرديه فقط
الرد }}}
تم الشكر بواسطة:
#7
أخبرتك أن 4.48 لا تصح ويجب إعادتها 4.8

ولم أفهم مشكلتك مه الأعداد الفردية

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

مثلا الساعة 4:48 تكون كالتالي
PHP كود :
(4*60) + 48 288 minutes 

يعني في الدقيقة 288 من دقائق اليوم

ولكي تعيدها لساعات ودقائق
PHP كود :
288/60 4.8 hours
Split  
"."
hour 4
minute 
0.8 60 48 
الرد }}}
تم الشكر بواسطة: استايل
#8
الف شكر لك يا استاذ الوادي على مشاركتك فيما طرحت ويسعدني ويشرفني انا اتتبادل الأفكار معكم يا اخوان واعلم اني قد أكون غير مستوعب الفكره إلى الان.
نعم اخي الوادي كلامك صحيح مليون بالمئه .قد أكون أنا غير مستوعب الفكره إلى الان او قد أكون اوصلتها لكم بشكل غير صحيح نعم انه كتابة 4.8 غير صحيه مطلقا ولكن انا أود الاقتناع بأن 04:48 هي القسمة الصحيحه للعدد 5 بمعني اريد اعرف ان لو جمعنا مثلا 04:48 خمس مرات راح يكون الناتج 24 ساعه هذا ما أريد معرفته ياغالي اريد طريقة عملية جمعها والحصول على 24 ساعه دون زيادة أو نقصان فقط هذا هو السؤال واتمنى اكون وضحت نا أريده وشكرا لكم
الرد }}}
تم الشكر بواسطة:
#9
لو دققت في مشاركتي الأخيرة لوجدت الحل فيها

أزيد توضيحاً

أولا نحول الشكل 4:48 إلى دقائق
PHP كود :
(4*60) + 48 288 minutes 

وهذه دالة التحويل
PHP كود :
Public Function time2minute(As String) As Integer
    Dim s
() As String
    s 
Split(t":")
 
   Dim m As Integer
    t 
= (Val(s(0)) * 60) + Val(s(1))
 
   time2minute t
End 
Function 

وهذا استدعائها
PHP كود :
Dim m As Integer
time2minute("4:48"

الآن سيحتوي المتعير m على مجموع الدقائق وهي 288


لخطوة التحقق التي تريدها:
نقوم بضرب الدقائق 288 في  5 فنحصل على 1440 دقيقة
ثم نقوم بتحويل الدقائق 1440 دقيقة إلى ساعات بقسمتها على 60
1440 / 60 = 24 ساعة

وإذا أدرتها بشكل h:m استخدم هذه الدالة
PHP كود :
Public Function minute2time(As Integer) As String
    Dim h 
As Integer
    Dim s
() As String
    Dim t 
As Double
    t 
= (60)
 
   s Split(Format(t"0.0#"), ".")
 
   h s(0)
 
   m = (Val("." s(1))) * 60
    Dim tm 
As String
    tm 
":" m
    minute2time 
tm
End 
Function 

وهذا استدعائها
PHP كود :
MsgBox minute2time(1440

وهذا كود كامل للتجربه Text1 وLabel1 وLabel2 وLabel3 وCommand1 وCommand2 وCommand3
PHP كود :
Option Explicit


Private Sub Command1_Click()
 
   Label1.Caption time2minute(Text1.Text)
End Sub

Private Sub Command2_Click()
 
   Label2.Caption Val(Label1.Caption) * 5
End Sub

Private Sub Command3_Click()
 
   Label3.Caption Val(Label2.Caption) / 60
End Sub



Public Function time2minute(As String) As Integer
    Dim s
() As String
    s 
Split(t":")
 
   Dim m As Integer
    t 
= (Val(s(0)) * 60) + Val(s(1))
 
   time2minute t
End 
Function


Public Function 
minute2time(As Integer) As String
    Dim h 
As Integer
    Dim s
() As String
    Dim t 
As Double
    t 
= (60)
 
   s Split(Format(t"0.0#"), ".")
 
   h s(0)
 
   m = (Val("." s(1))) * 60
    Dim tm 
As String
    tm 
":" m
    minute2time 
tm
End 
Function 




لابد من عمل دوال مساعدة تستدعيها عند الحاجة على أن ترجع لك معلومة بشكل تريده

كمبرمج ينبغي أن تكون لديك مكتبة أو حتى مكتبات مصنفة حسب طبيعتها، تحتفظ بها وتقوم بإضافتها في أي برنامج يحتاجها لتسهل عليك عملك بدلا من كتابة الأكواد في كل مرة.

فالمبرمج يريد أن يسهل على نفسه عمل البرامج وإنجازها بأقصر وقت ممكن، مع الحفاظ على تنظيم الأكواد ووضع الشرح داخله ليسهل التعديل إذا احتاج الأمر بعد فترة من الزمن.

والمستخدم للبرنامج لا يهمه ما يجري في الكود، ما يهمه هو استلام البرنامج في أقصر وقت ممكن وأن يعمل بشكل صحيح.
الرد }}}
#10
الله يعطيك العافية ويجزاك خير اخي واستاذي الوادي 
اكواد ثمينه تقدمها لنا في هذا المنتدى الجميل والعلمي
واشكرك على صبرك وحسن تفهمك الان فهمت الفكره 100%100

Big Grin
الرد }}}
تم الشكر بواسطة: الوادي , Ahmed_Mansoor , Ahmed_Mansoor



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


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