PDA

View Full Version : مشکل TimeSpan تبدیل عدد به دقیقه



tarsim
سه شنبه 11 شهریور 1393, 10:59 صبح
سلام به کد زیر دقیت کنید


float n = 1380;
TimeSpan javab = TimeSpan.FromMinutes(n);


hor1 = javab.Hours;
min1 = javab.Minutes;
sec1 = javab.Seconds;
MessageBox.Show(hor1 + " " + min1 + " " + sec1);


مقدار ساعت 23 و مقدار دقیقه 0 و ثانیه 0 بدست میاد که درسته ولی مشکل اینجاست اگر در متغیر n 1440 قرار بگیرد تمام 0 میشود و نباید بشود .
متغیر n که یک مقدار عددی هست
با کد زیر بدست میاید



float zarf;
zarf = (mablagh / nerkh) * 60;

که در واقع مقدار 1380 برابر است با مقدار بدست آمده از متغیر zarf
کل کارم به این صورت متغیر zarf یک مقدار عددی میگیرد مثلا 23000 تومان و میاد محاسبه میکند و عدد 1380 بدست میاید و تایم اسپم این عدد را به ساعت و دقیقه تحویل میدهد . مشکل اینجاست از 23000 بیشتر همش مقدار 0 میشود . چرا ؟

hamid_hr
سه شنبه 11 شهریور 1393, 11:40 صبح
خب 24 ساعت میشه یک روز
اینطوری بنویس

float n = 1440;
TimeSpan javab = TimeSpan.FromMinutes(n);
Console.WriteLine(javab.Days + " " + javab.Hours + " " + javab.Minutes + " " + javab.Seconds);
Console.ReadLine();

elec60
سه شنبه 11 شهریور 1393, 12:00 عصر
بايد دقت كني كه javab.Hours در واقع كامپوننت ساعت رو ميده نه كل ساعت رو.

tarsim
سه شنبه 11 شهریور 1393, 16:32 عصر
خب 24 ساعت میشه یک روز
اینطوری بنویس

float n = 1440;
TimeSpan javab = TimeSpan.FromMinutes(n);
Console.WriteLine(javab.Days + " " + javab.Hours + " " + javab.Minutes + " " + javab.Seconds);
Console.ReadLine();


هیچ فرقی نمیکنه کد شما با کد بنده . شما متوجه سوال بنده نشدید. ببنید برنامه طوری هست که مبلغی از شخصی گرفته مبشه مثلا 2000 تومان این مبلغ بر اساس نرخ ساعتی 1000 محاسه میشه در کد بالا نوشتم و جوابش یک عدد مثلا 4 رقمی مصل 1480 در میاد. حالا میخوام به کاربر نشون بدم 2000 تومان پولی که داده چند ساعت و دقیقه و ثانیه میتونه استفاده کنه. که با تایم اسپم این مشکل رو حل کردم . ولی مشکلم اینجاست از 23000 تومان بیشتر جواب 0 بر میگردونه

tarsim
سه شنبه 11 شهریور 1393, 17:42 عصر
تعداد روز به کارم نمیاد فقط ساعت و دیقیقه و ثانیه لازم دارم مثلا از 24 ساعت هم بگزره مثل 200:40:59

hamid_hr
سه شنبه 11 شهریور 1393, 18:05 عصر
اینطوری بنویس
((javab.Days * 24) + javab.Hours) + " " + javab.Minutes + " " + javab.Seconds