PDA

View Full Version : محاسبه ی زمان صرف شده بعد از کلیک روی دکمه



poshide
پنج شنبه 05 دی 1392, 14:07 عصر
من یه دکمه توی ویژوال استدیو دارم که محاسبات زیادی رو توی برنامه انجام میده. میخوام زمانی که صرف شده تا اون محاسبات انجام بشه رو به کاربر نشون بده. یعنی وقتی کاربر روی دکمه کلیک کرد یه تایمر شروع بشه و به محض پایان محاسبات تایمر متوقف بشه و زمان صرف شده رو نشون بده. چطور باید اینکار کرد؟
لطفا مرحله به مرحله بگین مثلا: 1 یه تایمر توی فرم میذاری. 2 مقدار enabled رو false میکنی 3...

abdullah20
پنج شنبه 05 دی 1392, 16:06 عصر
یه کرنومتر ایجاد کنید

poshide
جمعه 06 دی 1392, 17:54 عصر
یه کرنومتر ایجاد کنید
چطوری؟ لطفا بیشتر توضیح بدین.

sagggad
جمعه 06 دی 1392, 18:04 عصر
سلام دوست من.باید ما بدونیم چه جور محاسباتی هست تا بتونیم راهنماییت کنیم

اگه میتونی سورس برنامت رو بذار

abdullah20
جمعه 06 دی 1392, 18:52 عصر
سه تا متغییر سراسری ایجاد کنید:
int Second = 0;
int Minute = 0;
int Hour = 0;

سه تا لیبل و یک تایمر روی فرم قرار دهید سپس در رویداد tick تایمر کدهای زیر را بنویسید:
private void timer1_Tick(object sender, EventArgs e)
{


if (Minute == 59 && Second == 59)
{
Minute = -1;
lblMinute.Text = "00";
lblHour.Text = Hour < 9 ? "0" + Convert.ToString(Hour += 1) : Convert.ToString(Hour += 1);
}
if (Second == 59)
{
Second = -1;
lblMinute.Text = Minute < 9 ? "0" + Convert.ToString(Minute += 1) : Convert.ToString(Minute += 1);
}
lblSecound.Text = Second < 9 ? "0" + Convert.ToString(Second += 1) : Convert.ToString(Second += 1);

}

سپس در دکمه خود قبل از دستورات خود کد زیر را بنویسید:
timer1.Start();

و در اخر دستورات کد زیر را:
timer1.Stop();

خاصیت interval تایمر را هم 1000 قرار دهید

poshide
یک شنبه 08 دی 1392, 11:30 صبح
زمانی که حساب میشه در حد میلی ثانیه است. ساعت و دقیقه لازم نداره.

Babak-Magic
یک شنبه 08 دی 1392, 12:49 عصر
درود
لینک زیر را مشاهده کنید
http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch(v=vs.110).aspx

fmehrvarzi
یک شنبه 08 دی 1392, 19:36 عصر
یک راه دیگه:
DateTime dt1 = DateTime.Now;
//Put Your time consuming operation at here
DateTime dt2 = DateTime.Now;
TimeSpan ts = dt2.Subtract(dt1);

int mili= ts.Milliseconds;
int miliTotal= ts.Milliseconds;
int sec = ts.Seconds;
double secTot = ts.TotalSeconds;

fmehrvarzi
یک شنبه 08 دی 1392, 19:43 عصر
این هم یک امتحان که نشون میده کاملاً دقیق محاسبه میکنه!

poshide
دوشنبه 09 دی 1392, 09:35 صبح
یک راه دیگه:
DateTime dt1 = DateTime.Now;
//Put Your time consuming operation at here
DateTime dt2 = DateTime.Now;
TimeSpan ts = dt2.Subtract(dt1);

int mili= ts.Milliseconds;
int miliTotal= ts.Milliseconds;
int sec = ts.Seconds;
double secTot = ts.TotalSeconds;


آقا دستت طلا درستش کردم عالی شد.