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

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





                      (Dim Difference3 As TimeSpan = TimeSpan.Parse(TextBox41.Text) - TimeSpan.Parse(TextBox21.Text


                        TextBox42.Text = Difference3.ToString


(TextBox42.Text = Strings.Right("0" & Difference3.Hours, 2) & ":" & Strings.Right("0" & Difference3.Minutes, 2



و
الكود يعمل بشكل صحيح بشرط أن كل تكست بوكس يكون الوقت فيه أقل من 24:00 ساعة ولكن إذا كان الوقت أكثر من 24:00 يظهر رسالة خطأ 

Additional information: تعذر تحليل TimeSpan، لأن أحد المكونات العددية خارج النطاق أو يحتوي على عدد كبير من الأرقام


آسف على الإطالة 

لكم جزيل الشكر 
دمتم بود 
الرد
تم الشكر بواسطة: سعود , سعود
#2
وعليكم السلام

ال TimeSpan لا يستطيع تحويل الوقت النصي اذا كانت الساعات اكثر من 23 مثل ("24:00")
لكنه يقبلها في البيانات المنفرده (24,0,0) لابد من رقم الثوان

في هذه الحاله لابد من تقسيم النص لتحويله الى بيانات منفره مثل
Dim t1 As New TimeSpan(Split(TextBox41.Text, ":")(0), Split(TextBox41.Text, ":")(1), 0)

فيكون الكود
Dim t1 As New TimeSpan(Split(TextBox41.Text, ":")(0), Split(TextBox41.Text, ":")(1), 0)
Dim t2 As New TimeSpan(Split(TextBox21.Text, ":")(0), Split(TextBox21.Text, ":")(1), 0)
Dim Difference3 As TimeSpan = t1 - t2
TextBox42.Text = Strings.Right("0" & Difference3.Hours, 2) & ":" & Strings.Right("0" & Difference3.Minutes, 2)
الرد
تم الشكر بواسطة: سعود
#3
 السلام عليكم ورحمة الله وبركاته 

أولاً أشكرك على تفاعلك أخي الكريم 
جربت الكود اللي أرسلته الكود يستمر بالطرح بصورة ممتازة ولكن الطرح من التكست بوكس لأكثر من 30 ساعة يعني مثلا 48 ساعة تظهر أخطاء في الناتج 



لك جزيل الشكر 

دمتم بود 
الرد
تم الشكر بواسطة: Ashref , محمد اسماعيل , سعود
#4
العفو اخي الكريم

لا يوجد خطا ولكن الساعات تظهر لغاية 24 ساعه وبعدها يتحول ليوم وهذا لا يظهر بناء ع الكود بتاعك

TextBox42.Text = Fix(Difference3.TotalHours) & ":" & Strings.Right("0" & Difference3.Minutes, 2)
الرد
تم الشكر بواسطة: محمد اسماعيل , سعود
#5
مرة أخرى اشكرك على تفاعلك

أخي المقصود أنه عندما أقوم مثلا بطرح 03:00 من القيمة 29:00 الموجود في التكست بوكس الثاني فإن النتيجة تظهر 26:00 وهذا الشي ممتاز ولكن عندما تكون قيمة التكست بوكس الثاني أعلي من 30:00 فهنا تبدأ المشاكل


سؤال جانبي / عندما يظهر في التكست بوكس الأيام والساعات والدقائق فكيف تحول الأيام غلى ساعات ؟


لك جزيل الشكر
الرد
تم الشكر بواسطة: سعود
#6
العفو اخي الكريم

لم اجد المشكله كما هو واضح في الصوره


السؤال الجانبي غير واضح
الرد
تم الشكر بواسطة: سعود
#7
السلام عليكم 
 كلامك صحيح أخي ولكن إذا كان الوقت يحتوي  على ساعات ودقائق تظهر هذه المشكلة مثل 04:15   أما ساعات فقط بدون  دقائق فلاتظهر المشكلة 


المقصود بالسؤال الجانبي / انت قلت في أحد ردودك السابقة أن الساعات اذا كانت الساعات أكثر من 24 فإنها تتحول إلى أيام مثلاً   28:26  تتحول الى 1,04:26    بمعنى    1 يوم و وأربع ساعات و ستة وعشرون دقيقة 
المطلوب   
كيف أحول  1,04:26   إلى ساعات ودقائق بدون أيام    
معليش إن شاء الله يكون الشرح واضح 



لم جزيل الشكر 

دمت بود 
الرد
تم الشكر بواسطة: سعود
#8
وعليكم السلام

ايضا لم تظهر المشكله كما هو واضح في الصوره



السؤال الجانبي
لقد تم بالفعل تحويل الايام الى ساعات ودقائق في الكود
TextBox42.Text = Fix(Difference3.TotalHours) & ":" & Strings.Right("0" & Difference3.Minutes, 2)
الرد
تم الشكر بواسطة:
#9
لسلام عليكم ورحمة الله وبركاته 
شكرا شكرا من الأعماق تم المطلوب بنجاح مئة بالمئة بعد تعديل بسيط بالكود والفضل لك أخي أشرف بعد الله  لقد أزلت عني هماً كبيراً وأشكر لك صبرك على كثرة رسائلي  وهذا يبين كريم أخلاقك 

       ( Dim t1 As New TimeSpan(Split(TextBox41.Text, ":")(0), Split(TextBox41.Text, ":")(1), 0

       ( Dim t2 As New TimeSpan(Split(TextBox21.Text, ":")(0), Split(TextBox21.Text, ":")(1), 0

        Dim Difference3 As TimeSpan = t1 - t2

هذا هو التعديل
TextBox42.Text = Difference3.ToString

(TextBox42.Text = Fix(Difference3.TotalHours) & ":" & Strings.Right("0" & Difference3.Minutes, 2


 لك جزيل الشكر 
دمت بود

(09-01-21, 12:32 AM)سعود كتب :
إقتباس :الكود يعمل بشكل صحيح بشرط أن كل تكست بوكس يكون الوقت فيه أقل من 24:00 ساعة ولكن إذا كان الوقت أكثر من 24:00 يظهر رسالة خطأ 
اخواني الكرام 
اسمحو لي بهذه ا لمشاركة.
الساعة لا يمكن ان تصل 24 آخرها 23 
اذا اردت التعامل مع وقت اكثر من 24 ساعة استخدم الايام ايضا.
لو ترفع مثال بسيط حتى نعدل على المثال بصمت فان عرفنا الكود الصحيح ابلغناك وان لا سكتنا
  شكرا لك أخ سعود تم الحل بمساعدة الأستاذ أشرف وتشرفت بردك 
الرد
تم الشكر بواسطة: Ashref , سعود


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [vb6.0] كود اذا لم يقم بتسجيل الدخول خلال 3 دقائق فانه سيتم الخروج من البرنامج بشكل تلقائي Rasha Hasanain 1 77 18-04-21, 04:31 PM
آخر رد: messry
  طريقة لفتح نوافذ مبيعات مختلفة في نفس الوقت وكل فاتورة لها رقم تلقائي tfarejdz 1 82 15-04-21, 07:48 PM
آخر رد: messry
  ارجو المساعدة في عرض البيانات على التاتا جرد فيو moahmed.abdelmohsen 1 229 15-03-21, 09:38 PM
آخر رد: moahmed.abdelmohsen
  [سؤال] سؤال طريق اعمل بحث و اضافة و تعديل دخل قاعد البيانات فى نفس الوقت alims 1 213 15-03-21, 07:17 AM
آخر رد: alims
  [سؤال] سؤال في الوقت حسن الجلب 5 287 12-03-21, 01:13 AM
آخر رد: علي بنيان
  [سؤال] ضبط لغه الوقت والتاريخ حسن الجلب 1 155 08-03-21, 09:24 PM
آخر رد: asmarsou
  المساعدة في انشاء شريط تحميل progress bar MustafaShaker 1 500 08-03-21, 04:14 PM
آخر رد: alsouf
  حساب الفرق بين وقتين من خلال الداتا قريد aftfm 6 396 20-02-21, 04:50 PM
آخر رد: أبو عبدالله الحلواني
  مشكلة عند تصدير الداتا قريد إلى الاكسل يظهر الوقت مع التاريخ ؟ أبووسم 3 386 19-02-21, 08:53 PM
آخر رد: أبووسم
  جمع الوقت من خلال داتا قريد مستمدة من جدول في أكسس saud4001 0 178 19-02-21, 09:19 AM
آخر رد: saud4001

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


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