PDA

View Full Version : کم کردن دو زمان از یکدیگر



poya011
جمعه 12 مرداد 1386, 16:40 عصر
من می خواهیم 2 زمان مثل ساعت 2:30:50 را ساعت 3:40:10 کم کنم
با تشکر از همکاری شما

PC2st
جمعه 12 مرداد 1386, 18:03 عصر
اگر dt1 ساعت 2:30:50 و dt2 ساعت 3:40:10، به روش معمولی میشه تفاضل اونها رو در dt3 قرار داد:


DateTime dt1 = new DateTime(2007, 2, 25, 2, 30, 50);
DateTime dt2 = new DateTime(2007, 2, 25, 3, 40, 10);
DateTime dt3 = new DateTime(2007, 2, 25, Math.Abs(dt2.Hour - dt1.Hour), Math.Abs(dt2.Minute - dt1.Minute), Math.Abs(dt2.Second - dt1.Second));
MessageBox.Show(dt3.ToString("HH:mm:ss"));

یا اینکه میشد از توابع AddSecond و AddMinutes و ... هم استفاده کرد.

alireza643
شنبه 13 مرداد 1386, 08:29 صبح
شما میتونید از ساختار TimeSpan ستفاده کنید و حاصل محاسبات رو تو متغیری از این نوع بریزید.

asar_001
شنبه 13 مرداد 1386, 11:38 صبح
اگر dt1 ساعت 2:30:50 و dt2 ساعت 3:40:10، به روش معمولی میشه تفاضل اونها رو در dt3 قرار داد:


DateTime dt1 = new DateTime(2007, 2, 25, 2, 30, 50);
DateTime dt2 = new DateTime(2007, 2, 25, 3, 40, 10);
DateTime dt3 = new DateTime(2007, 2, 25, Math.Abs(dt2.Hour - dt1.Hour), Math.Abs(dt2.Minute - dt1.Minute), Math.Abs(dt2.Second - dt1.Second));
MessageBox.Show(dt3.ToString("HH:mm:ss"));

یا اینکه میشد از توابع AddSecond و AddMinutes و ... هم استفاده کرد.
با سلام
این روش درست نیست چون اگه زمان دوم از زمان اول کوچکتر باشه درست کار نمی کنه
time span روش درستییه
یا اینکه خودت جدا جدا محاسبه کنی

poya011
شنبه 13 مرداد 1386, 20:52 عصر
ساختار TimeSpan چگونه است

PC2st
شنبه 13 مرداد 1386, 20:59 عصر
چون اگه زمان دوم از زمان اول کوچکتر باشه درست کار نمی کنه
درسته، متاسفانه الان فهمیدم که کدهایم اشتباه بود!
دوست عزیز، از شما ممنونم و از دوستان عذر میخوام.

RezaKia
شنبه 13 مرداد 1386, 21:05 عصر
سلام،

نمیدونم تو #C این تابع رو دارید یا نه. ولی تو VB از این کار استفاده میکنند. :بامزه:




DateAndTime.DateDiff(DateInterval.Second, Date1, Date2)



اگر هم نباشه قطعاً معادل داره :لبخند:

PC2st
شنبه 13 مرداد 1386, 21:17 عصر
نحوه کار TimeSpan


DateTime dt1 = new DateTime(2007, 2, 25, 2, 30, 50);
DateTime dt2 = new DateTime(2007, 2, 25, 3, 40, 10);
TimeSpan ts0 = dt2 - dt1;
MessageBox.Show(ts0.ToString());