PDA

View Full Version : سوال: جمع کردن یا اختلاف بین دو زمان (ساعت)



aliramazani
پنج شنبه 30 خرداد 1392, 08:36 صبح
سلام.
من میخوام دو تا ساعت را باهم جمع یا تفریق کنم.
مثلا ساعت 7.30 را با 10.50 جمع کنم. حالا میوخام بدونم
اولا اطلاعات ساعت را به چه شکل و فرمتی در دیتابیس ذخیره کنم
دوما چطوری جمع کنم که مثلا 7.30 با 10.50 بشه 18.20 نه اینکه بشه 17.80 یعنی خودش بتونه تشخیص بده که به 60 که رسید یکی به ساعت باید اظافه کنه.
سوما
بتونه اختلاف را هم بدست بیاره. مثلا اختلاف 7.30 یا 10.50 را 3.20 بدست .
چهارما
اگه اختلاف بشتر از 24 ساعت بود بتونه تشخیص بده.
مثلا 1.30 تاریخ دیروز را با 22.30 امروز درست بدست بیاره.

Mahmoud.Afrad
پنج شنبه 30 خرداد 1392, 10:29 صبح
TimeSpan ts1 = TimeSpan.Parse("07:30:00");
TimeSpan ts2 = TimeSpan.Parse("10:50:00");
TimeSpan ts3 = ts2 - ts1;
TimeSpan ts4 = ts2 + ts1;
MessageBox.Show(ts3 + "\t" + ts4);

DateTime dt1 = DateTime.Parse("2013/06/19 01:30:00");
DateTime dt2 = DateTime.Parse("2013/06/20 22:30:00");
TimeSpan ts5 = TimeSpan.FromTicks(dt1.Ticks);
TimeSpan ts6 = TimeSpan.FromTicks(dt2.Ticks);
TimeSpan ts7 = ts6 - ts5;
MessageBox.Show(ts7.ToString());

برای ذخیره هم بستگی داره بخوای تاریخ رو شمسی ذخیره کنی یا نه. اگر نه بصورت DateTime ذخیره میکنی. اگر شمسی ذخیره کنی موقع محاسبه تبدیل به میلادی میکنی.

aliramazani
پنج شنبه 30 خرداد 1392, 11:40 صبح
DateTime dt1 = DateTime.Parse("2013/06/19 01:30:00");
DateTime dt2 = DateTime.Parse("2013/06/20 22:30:00");
TimeSpan ts5 = TimeSpan.FromTicks(dt1.Ticks);
TimeSpan ts6 = TimeSpan.FromTicks(dt2.Ticks);
TimeSpan ts7 = ts6 - ts5;
MessageBox.Show(ts7.ToString());


این کد اختلاف زمان را به درستی بدست نمیاره.
تازه یک عدد 1 هم قبل از زمان قرار میده.

mohsen22
پنج شنبه 30 خرداد 1392, 12:32 عصر
ببین این کارتو راه میندازه:

Mahmoud.Afrad
پنج شنبه 30 خرداد 1392, 14:17 عصر
این کد اختلاف زمان را به درستی بدست نمیاره.
تازه یک عدد 1 هم قبل از زمان قرار میده.
شما اختلاف دو زمانی که مثال زدم رو محاسبه کردید؟
اون عدد 1 پشت زمان هم تعداد روز هست.

raziyehbazargan
جمعه 31 خرداد 1392, 10:32 صبح
من از یه datetime picker که دوستان در سایت گذاشتن استفاده میکنم .میخوام اگر تاریخ 1392/03/12 بود در قسمت دیگه تعدا روز رو بگیر مثلا 1 روز و تاریخ 1392/03/22 رو نمایش بده

چزور اینکارو میتونم انجام بدم؟؟؟؟؟؟؟؟؟

aliramazani
جمعه 07 تیر 1392, 00:16 صبح
TimeSpan ts1 = TimeSpan.Parse("07:30:00");
TimeSpan ts2 = TimeSpan.Parse("10:50:00");
TimeSpan ts3 = ts2 - ts1;
TimeSpan ts4 = ts2 + ts1;
MessageBox.Show(ts3 + "\t" + ts4);

DateTime dt1 = DateTime.Parse("2013/06/19 01:30:00");
DateTime dt2 = DateTime.Parse("2013/06/20 22:30:00");
TimeSpan ts5 = TimeSpan.FromTicks(dt1.Ticks);
TimeSpan ts6 = TimeSpan.FromTicks(dt2.Ticks);
TimeSpan ts7 = ts6 - ts5;
MessageBox.Show(ts7.ToString());

برای ذخیره هم بستگی داره بخوای تاریخ رو شمسی ذخیره کنی یا نه. اگر نه بصورت DateTime ذخیره میکنی. اگر شمسی ذخیره کنی موقع محاسبه تبدیل به میلادی میکنی.

چطوری 00 آخر که ثانیه است را حذف کنم؟

tooraj_azizi_1035
جمعه 07 تیر 1392, 15:23 عصر
سلام


چطوری 00 آخر که ثانیه است را حذف کنم؟
string s = DateTime.Now.TimeOfDay.ToString("HH:mm", ci);


من میخوام دو تا ساعت را باهم جمع یا تفریق کنم.
مثلا ساعت 7.30 را با 10.50 جمع کنم. حالا میوخام بدونم
اولا اطلاعات ساعت را به چه شکل و فرمتی در دیتابیس ذخیره کنمنوع داده ای ذخیره سازی زمان در SQL Server نوع Time(n) هست که شما باید time(0) بگیرید تا ساعت دقیقه و ثانیه رو براتون ذخیره کنه.





دوما چطوری جمع کنم که مثلا 7.30 با 10.50 بشه 18.20 نه اینکه بشه 17.80 یعنی خودش بتونه تشخیص بده که به 60 که رسید یکی به ساعت باید اظافه کنه.

جمع و تفرق با استفاده از متدهای Add و Subtract در دات نت انجام میشه:
سوما
بتونه اختلاف را هم بدست بیاره. مثلا اختلاف 7.30 یا 10.50 را 3.20 بدست .

چهارما
اگه اختلاف بشتر از 24 ساعت بود بتونه تشخیص بده.
مثلا 1.30 تاریخ دیروز را با 22.30 امروز درست بدست بیاره.

// Calculate what day of the week is 36 days from this instant.
System.DateTime today = System.DateTime.Now;
System.TimeSpan duration = new System.TimeSpan(36, 0, 0, 0);
System.DateTime answer = today.Add(duration);
System.Console.WriteLine("{0:dddd}", answer);




System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0);
System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0);
System.DateTime date3 = new System.DateTime(1996, 10, 12, 8, 42, 0);

// diff1 gets 185 days, 14 hours, and 47 minutes.
System.TimeSpan diff1 = date2.Subtract(date1);

// date4 gets 4/9/1996 5:55:00 PM.
System.DateTime date4 = date3.Subtract(diff1);

// diff2 gets 55 days 4 hours and 20 minutes.
System.TimeSpan diff2 = date2 - date3;

// date5 gets 4/9/1996 5:55:00 PM.
System.DateTime date5 = date1 - diff2;