جمع ساعت و دقیقه با TimeSpan
با سلام خدمت اساتید عزیز؛
نحوه جمع ساعت و دقیقه با TimeSpan رو میخواستم انجام بدم
این کد زیر رو در فرم لود اطلاعاتم از دیتاگرید قرار دادم:
DataTable dt = new DataTable();
dt = ClassOledb.SelectOleDb.GetData("SELECT * FROM tbltime WHERE codemeli='" + codemeli_get + "'and dateinsert BETWEEN'" + "1394/" + Shamsi.geting_date_month("") + "/01" + "'and'" + "1394/" + Shamsi.geting_date_month("") + "/31" + "' order by dateinsert");
dataGridViewX1.DataSource = dt;
dis_button();
TimeSpan kolii = new TimeSpan();
foreach (DataRow dr in dt.Rows)
{
if (dr["koltime"].ToString() != "")
{
TimeSpan timrkoli = TimeSpan.Parse(dr["koltime"].ToString());
kolii += timrkoli;
lMorning.Text = kolii.ToString();
}
}
این نتیجه ای اول که مشکل اینه که فرمت ثانیه رو میخوام بردارم یعنی بشه hh:MM
http://charp.persiangig.com/Untitled.png
و این مشکل دوم تویی محاسبه با تعداد زیاد جمع ساعت که نتیجه رو اشتباه نمایش میده؟!
http://charp.persiangig.com/Untitled2.png
نقل قول: جمع ساعت و دقیقه با TimeSpan
برای مشکل اولت از tostring و فرمت هایی که داره استفاده کردی؟؟؟؟
مشکل دومت رو کمی شفاف تر توضیح میدی منظورت از تعداد زیاد جمع منظورت رو نفهمیدم.
نقل قول: جمع ساعت و دقیقه با TimeSpan
برای مشکل اول از فرمت های tostring استفاده کردم مشکل داشت (هم بیرون حلقه و هم داخل حلقه)
مشکل دومم (توعکس دوم) دقت کنید محاسبه جمع ساعت ها اشتباهه!!
2 ضمیمه
نقل قول: جمع ساعت و دقیقه با TimeSpan
سلام به همه ی اساتید سایت
این برنامه که ضمیمه میکنم
جمع زمان های سطر های رو حساب و در یک ستون در گرید نمایش میده
ولی برای قسمت دومش که جمه ستونی زمانهای میباشد مشکل داره هرکاری کردم نتونستم درش بیام که گیرش کجا
اگه تاریخ و به صورت دستی وارد کنی بدون مشکل درست کارمیکنه !
و یا از دیگر فیلد ها استفاده برای جمع ستونی بازم درست کارمیکنه !
که نام ستون گرید ما برای جمع کل زمان ها هست sumtime
و نام رکورد های دیگه هم هست sobh ,zohr,ase,shab که هرکدون رو بجای sumtime توی حلقه دوم بزاری درست کار میکنه
که نمیدونم چیکار کنم دوستان برنامه رو یک بررسی بکنند ببینند مشکل از کجاست
عکس خطا رو هم ضمیمه کردم
نقل قول: جمع ساعت و دقیقه با TimeSpan
با سلام خدمت شما دوست عزیز
فکر کنم این کد به کارت بیاد ولی خودم تست نکردم چون قبلاً این کار رو کردم
TimeSpan sum = TimeSpan.Zero;
for ( int i = 0; i < grid_horas.Rows.Count; i++ )
{
sum += (TimeSpan)grid_horas.Rows[i].Cells[7].Value;
}
نقل قول: جمع ساعت و دقیقه با TimeSpan
دادا کد واضح نیست میشه مرتبش کنی
1 ضمیمه
نقل قول: جمع ساعت و دقیقه با TimeSpan
نقل قول:
با سلام خدمت شما دوست عزیز
فکر کنم این کد به کارت بیاد ولی خودم تست نکردم چون قبلاً این کار رو کردم
1
2
3
4
5 |
TimeSpan sum = TimeSpan.Zero;
for ( int i = 0; i < grid_horas.Rows.Count; i++ )
{
sum += (TimeSpan)grid_horas.Rows[i].Cells[7].Value;
}
|
سلام دوست عزیز
این کدی رو که زحمت کشیدی گذاشتید تست کردم خطا داره
عکس رو ضمیمه کردم
نقل قول: جمع ساعت و دقیقه با TimeSpan
نقل قول:
نوشته شده توسط
juza66
خب اینکه درست نشون میده که ! 3 روز و 10 ساعت!
اما اگه میخوای فقط کل شاعت ها رو بهت نشون بده این کد رو بزن:
lblMorning.Text =kolii.TotalHours.ToString();
یا
lblMorning.Text = kolii.TotalHours.ToString("00") + ":" + kolii.TotalMinutes.ToString("D2");
دستور tostring را پارامترهای "00" و یا "D2" برای نمایش دو رقمی با پرکردن جای خالی توسط کاراکتر 0 استفاده کنید.
حالا خودمونیم، حقوق ساعتی چقدر میدن؟