المشاركات : 186
المواضيع 33
الإنتساب : Dec 2018
السمعة :
1
الشكر: 187
تم شكره 150 مرات في 105 مشاركات
17-04-19, 07:49 PM
(آخر تعديل لهذه المشاركة : 21-04-19, 06:59 PM {2} بواسطة maxruined .)
السلام عليكم
واجهتني مشكلة اثناء عمل برنامج حضور وانصراف الموظفين والمشكلة هى مش عارف اخلي ال text box عباره عن توقيت ساعه
بحيث انى لما اطرح ال out من ال in يديني فى ال total hour مجموع ساعات العمل
ارجو مساعدتي في حل هذه المشكلة
ولكم جزيل الشكر
المشاركات : 2,061
المواضيع 49
الإنتساب : Oct 2017
السمعة :
538
الشكر: 10647
تم شكره 5323 مرات في 2095 مشاركات
17-04-19, 08:54 PM
(آخر تعديل لهذه المشاركة : 17-04-19, 09:16 PM {2} بواسطة ابراهيم ايبو .)
السلام عليكم اخي الكريم
تفضل هذا الكود
كود :
private void button1_Click(object sender, EventArgs e)
{
DateTime startTime = new DateTime();
startTime = Convert.ToDateTime(textBox1.Text);
DateTime endTime = new DateTime();
endTime = Convert.ToDateTime(textBox2.Text);
TimeSpan ts = endTime - startTime;
textBox3.Text = ts.ToString();
}
وهذا الكود سوف يعطيك النتيجة بالدقائق
كود :
private void button2_Click(object sender, EventArgs e)
{
DateTime startTime = new DateTime();
startTime = Convert.ToDateTime(textBox1.Text);
DateTime endTime = new DateTime(2012, 2, 20, 14, 43, 0);
endTime = Convert.ToDateTime(textBox2.Text);
TimeSpan span = endTime - startTime;
int Minuts = span.Hours * 60 + span.Minutes;
textBox3.Text = Minuts.ToString();
}
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
المشاركات : 186
المواضيع 33
الإنتساب : Dec 2018
السمعة :
1
الشكر: 187
تم شكره 150 مرات في 105 مشاركات
(17-04-19, 08:54 PM) ابراهيم ايبو كتب : السلام عليكم اخي الكريم
تفضل هذا الكود
كود :
private void button1_Click(object sender, EventArgs e)
{
DateTime startTime = new DateTime();
startTime = Convert.ToDateTime(textBox1.Text);
DateTime endTime = new DateTime();
endTime = Convert.ToDateTime(textBox2.Text);
TimeSpan ts = endTime - startTime;
textBox3.Text = ts.ToString();
}
وهذا الكود سوف يعطيك النتيجة بالدقائق
كود :
private void button2_Click(object sender, EventArgs e)
{
DateTime startTime = new DateTime();
startTime = Convert.ToDateTime(textBox1.Text);
DateTime endTime = new DateTime(2012, 2, 20, 14, 43, 0);
endTime = Convert.ToDateTime(textBox2.Text);
TimeSpan span = endTime - startTime;
int Minuts = span.Hours * 60 + span.Minutes;
textBox3.Text = Minuts.ToString();
}
شكراً جداً اخى العزيز
بس كان ليا استفسار اخير .. كنت عايز كود يعمل جمع لعدد كتير من الساعات ... يعني مثلا انا عندى اكتر من تيكست بوكس فيه حساب للساعه .. عايز كود يجمعهم كلهم مع بعض .. وشكراً جداً اخى العزيز على المساعده
المشاركات : 2,061
المواضيع 49
الإنتساب : Oct 2017
السمعة :
538
الشكر: 10647
تم شكره 5323 مرات في 2095 مشاركات
السلام عليكم اخي الكريم
استخدم الكود الثاني حيث الحساب يكون بالدقائق ثم قم بجمع كل التكست بوكس
وبعدها حول الى الساعة بأن تقسم الرقم الناتج على 60
والباقي من القسمة سيكون دقائق
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
المشاركات : 186
المواضيع 33
الإنتساب : Dec 2018
السمعة :
1
الشكر: 187
تم شكره 150 مرات في 105 مشاركات
(18-04-19, 01:13 AM) ابراهيم ايبو كتب : السلام عليكم اخي الكريم
استخدم الكود الثاني حيث الحساب يكون بالدقائق ثم قم بجمع كل التكست بوكس
وبعدها حول الى الساعة بأن تقسم الرقم الناتج على 60
والباقي من القسمة سيكون دقائق
السلام عليكم اخى العزيز
بس الطريقه اللى بتقول عليها دى مش هتنفع .. يعني مثلا لو قسمنا 160 دقيقه اي 2.40 اتنين ساعه واربعين دقيقه
هنقول 160/60 هيطلع الناتح كدا ٢.٦٦٦٦٦٦٦٦٦٦٦٦٦٦٧ اكيد طبعاً مش صح
لو فيه اي طريقه تانى للجمع بحيث يجمعلي عدد الساعات والدقائق ويدينى الناتج يبقي كتر خيرك
شكراً جداً اخى العزيز على سرعه الرد
المشاركات : 2,061
المواضيع 49
الإنتساب : Oct 2017
السمعة :
538
الشكر: 10647
تم شكره 5323 مرات في 2095 مشاركات
18-04-19, 05:24 PM
(آخر تعديل لهذه المشاركة : 18-04-19, 05:32 PM {2} بواسطة ابراهيم ايبو .)
السلام عليكم اخي الكريم
ستستخدم عمليتي القسمة العادية وباقي القسمة واليك الكود
كود :
private void button1_Click(object sender, EventArgs e)
{
int HH,MM;
HH = (int.Parse(textBox1.Text) / 60); // قسمة عدد صحيح دون أن نأحذ الباقي
MM = (int.Parse(textBox1.Text) % 60); // عملية باقي القسمة
textBox2.Text= HH + "ساعة " + " و " + MM +" دقيقة";
}
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
المشاركات : 186
المواضيع 33
الإنتساب : Dec 2018
السمعة :
1
الشكر: 187
تم شكره 150 مرات في 105 مشاركات
(18-04-19, 05:24 PM) ابراهيم ايبو كتب : السلام عليكم اخي الكريم
ستستخدم عمليتي القسمة العادية وباقي القسمة واليك الكود
كود :
[align=center] private void button1_Click(object sender, EventArgs e)[/align]
[align=center] {[/align]
[align=center] int HH,MM;[/align]
[align=center] HH = (int.Parse(textBox1.Text) / 60); // قسمة عدد صحيح دون أن نأحذ الباقي [/align]
[align=center] MM = (int.Parse(textBox1.Text) % 60); // عملية باقي القسمة[/align]
[align=center] textBox2.Text= HH + "ساعة " + " و " + MM +" دقيقة";[/align]
[align=center] } [/align]
شكراً جداً اخى العزيز على مساعدتك
بس انا كنت محتاج اعمل بس جمع لعدد الساعات فى تيكست بوكس واحد ولكن مش يجمع ليا عدد الساعات بالدقايق زي كدا يعني
عايز عدد الساعات اللى في الصورة يتجمع فى التيكست بوكس اللى تحت
يعني مثلا يقولي دول 17:20 سبعه عشر ساعه وعشرون دقيقه مش تحت شرط بالتفقيط بالارقام بس
ومرة تانى الف مليون شكرا لمساعدتك
المشاركات : 2,061
المواضيع 49
الإنتساب : Oct 2017
السمعة :
538
الشكر: 10647
تم شكره 5323 مرات في 2095 مشاركات
السلام عليكم ورحمة الله وبركاته
تفضل اخي عملت لك مثال تقوم بادخال التاريخ واسم الموظف وعدد ساعات دوامه في الداتاغرايدفيو
ثم تحسب ممجموع ساعات دوامه الموجودة في عمود ساعات الدوام وتضعها في مربع المجموع
اعتقد جازما هذا ماتريد والله المستعان
الملفات المرفقة
ColumnTime Calculate.rar (الحجم : 64.29 ك ب / التحميلات : 19)
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
المشاركات : 186
المواضيع 33
الإنتساب : Dec 2018
السمعة :
1
الشكر: 187
تم شكره 150 مرات في 105 مشاركات
(18-04-19, 10:06 PM) ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
تفضل اخي عملت لك مثال تقوم بادخال التاريخ واسم الموظف وعدد ساعات دوامه في الداتاغرايدفيو
ثم تحسب ممجموع ساعات دوامه الموجودة في عمود ساعات الدوام وتضعها في مربع المجموع
اعتقد جازما هذا ماتريد والله المستعان
اخى العزيز شكراً جداً لمساعدتك
بس البرنامج اللى انت بعته لما بحسب مجموع ساعات العمل بيجبلى خطأ .. جايز بسبب اختلاف الاصدارات لدينا .. مش عارف الحقيقه
عمتاً انا كنت محتاج بس اعمل مجموع للعامود اللى فيه Total Hour واحط المجموع فى التيكست بوكس اللى عليه السهم باللون الاحمر
بتمني من اى حد يقدر يساعدني في حل المشكلة دى
المشاركات : 3,815
المواضيع 36
الإنتساب : Mar 2014
السمعة :
724
الشكر: 7238
تم شكره 6709 مرات في 3265 مشاركات
مرحباً اخى الحبيب
كل ما تحتاج اليه هو استخدام الكود التالى
اما فى حدث زر او فى حدث اللود اسفل كود تعبئة الداتا جريد
كود :
Int32 H = 0;
Int32 M = 0;
Int32 S = 0;
foreach (DataGridViewRow GetTotal in dataGridView1.Rows)
{
TimeSpan ts = TimeSpan.Parse(GetTotal.Cells[5].Value.ToString());
H += Convert.ToInt32(ts.Hours);
M += Convert.ToInt32(ts.Minutes);
S += Convert.ToInt32(ts.Seconds);
}
MessageBox.Show(H.ToString("00") + ":" + M.ToString("00") + ":" + S.ToString("00"));
وستجد اجمالى العمود يظهر برسالة ولظهورها فى الـ textBox
فقط تعال على السطر التالى
كود :
MessageBox.Show(H.ToString("00") + ":" + M.ToString("00") + ":" + S.ToString("00"));
واستبدله بـ
كود :
textBox1.Text = H.ToString("00") + ":" + M.ToString("00") + ":" + S.ToString("00");
تحياتى لك
وتمنياتى لك التوفيق