تقييم الموضوع :
  • 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 , سعود



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


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