PDA

View Full Version : سوال: ابتدا تفریق و سپس جمع دو زمان



aliramazani
جمعه 12 تیر 1394, 15:14 عصر
دو ساعت مثلا 23:00 باید از 01:30 کم بشن قاعدتا جواب باید 2:30 بشه و بعد جواب حاصله بابد با یک زمان مثلا 25:30 ساعت جمع بشه.
روش یا کدش چیه. ممنون از راهنماییتون

winner1
جمعه 12 تیر 1394, 15:26 عصر
از timespane استفاده کن مثلا :

DateTime dt1 = Convert.ToDateTime("2015/07/03 01:00");
DateTime dt2 = Convert.ToDateTime("2015/07/03 23:00");
TimeSpan ts= dt2 - dt1;
MessageBox.Show(ts.Hours.ToString("00") + ":" + ts.Minutes.ToString("00"));

alireza264
جمعه 12 تیر 1394, 15:44 عصر
سلام
از تابع DateTime استفاده کنید


DateTime a = new DateTime(2015, 05, 11, 23, 00, 00);
DateTime b = new DateTime(2015, 05, 12, 1, 30, 00);



(a - b).TotalMinutes اختلاف به دقیقه
(a - b).TotalSeconds اختلاف به ثانیه
(a - b).TotalMilliseconds اختلاف به میلی ثانیه
(a - b).TotalHours اختلاف به ساعت


DateTime c = new DateTime();
c = a.AddHours((a - b).TotalHours + 25.5);

int Def_Hrs =( c - a ).TotalHours;

Mahmoud.Afrad
شنبه 13 تیر 1394, 00:11 صبح
دو ساعت مثلا 23:00 باید از 01:30 کم بشن قاعدتا جواب باید 2:30 بشه و بعد جواب حاصله بابد با یک زمان مثلا 25:30 ساعت جمع بشه.
روش یا کدش چیه. ممنون از راهنماییتون

چون روز رو مشخص نکردی اختلافشون 21:30 خواهد شد نه 2:30 (چون طبق گفته شما هر دو ساعت در یک روز خواهند بود مگر اینکه اختلاف رو بیان کنید)
اگر میخوای در دو روز متفاوت باشند باید اختلاف رو به پارامتر days روز دوم بدی:

TimeSpan t1 = new TimeSpan(0, 23, 0, 0);
TimeSpan t2 = new TimeSpan(1, 1, 30, 0);

TimeSpan t3 = t2 - t1;
MessageBox.Show(t3.ToString());

جمع هم به همین صورت فقط تغییر عملگر به + باید صورت بگیره با زمان مورد نظر.

aliramazani
یک شنبه 14 تیر 1394, 12:36 عصر
سلام
از تابع DateTime استفاده کنید


DateTime a = new DateTime(2015, 05, 11, 23, 00, 00);
DateTime b = new DateTime(2015, 05, 12, 1, 30, 00);



(a - b).TotalMinutes اختلاف به دقیقه
(a - b).TotalSeconds اختلاف به ثانیه
(a - b).TotalMilliseconds اختلاف به میلی ثانیه
(a - b).TotalHours اختلاف به ساعت


DateTime c = new DateTime();
c = a.AddHours((a - b).TotalHours + 25.5);

int Def_Hrs =( c - a ).TotalHours;



در این کد 25.5 به معنای بیست و پنج و نیم هست در حالیکه من میخوام 25.3 به معنای بیست و پنج نیم خونده بشه چون 30 دقیقه به معنای نیمه

elec60
دوشنبه 15 تیر 1394, 00:29 صبح
در این کد 25.5 به معنای بیست و پنج و نیم هست در حالیکه من میخوام 25.3 به معنای بیست و پنج نیم خونده بشه چون 30 دقیقه به معنای نیمه

براکت ۲۵.۵ میشه ۲۵ که همون ساعته

۲۵.۵ منهای ۲۵ هم میشه ۰.۵ که اگه ضربدر ۶۰ بشه میشه ۳۰ دقیقه