PDA

View Full Version : سوال: اختلاف چند ساعت بین دو ساعت داده شده



aliramazani
سه شنبه 26 خرداد 1394, 17:23 عصر
چطوری میشه اختلاف ساعت مثلا ساعت 8:00 تاریخ 1394/03/25 تا ساعت 21:25 تاریخ 1394/03/26 را بر حسب ساعت بدست اورد؟ مثلا فلان ساعت و فلان دقیقه

Motevalizadeh
سه شنبه 26 خرداد 1394, 18:22 عصر
اگر بخواید با تاریخ هجری که الان هست کار کنید دردسر داره بهترین راه تبدیل این ها به تاریخ میلادی و منها کردن اونها توسط کلاس DateTime و مجددا تبدیل اون به هجری هست.
اینجوری اگه چندین روزم اختلاف باشه راحت بدست میاد

RmeXXXXXXXXX
سه شنبه 26 خرداد 1394, 21:44 عصر
DateTime مقادیرش و بر اساس میلادی نگهداری میکنه. یعنی هر تاریخی با هر تقویمی بهش بدین تبدیل به میلادیش میکنه.
شما دو تا تاریخ رو از هم که کم کنید خروجی از نوع TimeSpan بهتون میده حتی اختلاف میلی ثانیه رو هم تعیین میکنه دقیقه و ساعت و روز و سال و ماه پیش کش.

aliramazani
چهارشنبه 27 خرداد 1394, 07:39 صبح
اینطوری مثلا به دست میاره 1 روز و 4 ساعت و فلان دقیقه. میخوام اون یک را بدیت نیاره و ساعت را بهدعلاوه 24 ساعت کنه مثلا بگه 28 ساعت و فلان دقیقه. فعلا خودم با کد نویسی دارم 24 را به ساعت اضافه میکنم.

SabaSabouhi
چهارشنبه 27 خرداد 1394, 08:11 صبح
اینطوری مثلا به دست میاره 1 روز و 4 ساعت و فلان دقیقه. میخوام اون یک را بدیت نیاره و ساعت را بهدعلاوه 24 ساعت کنه مثلا بگه 28 ساعت و فلان دقیقه. فعلا خودم با کد نویسی دارم 24 را به ساعت اضافه میکنم.

سلام
همون TimeSpan تمام نیاز شما رو رفع می‌کنه. اگه می‌خوای بجای 1 روز و 4 ساعت، 28 ساعت داشته باشی بجای Hours از TotalHours استفاده کن.

var hours = MyTimeSpan.TotalHours;



صبا صبوحی

elec60
چهارشنبه 27 خرداد 1394, 09:13 صبح
سلام
همون TimeSpan تمام نیاز شما رو رفع می‌کنه. اگه می‌خوای بجای 1 روز و 4 ساعت، 28 ساعت داشته باشی بجای Hours از TotalHours استفاده کن.

var hours = MyTimeSpan.TotalHours;



صبا صبوحی

خاصيت TotalHours از نوع dounble هست و برای مثال برای 1 روز و 50 دقیقه مقدار 24.833333 رو برمی گردونه

باید با استفاده از Floor مقدار صحیح بدست بياد و بعد با استفاده از تفریق مقدار اعشاری بدست بیاد و در نهایت پاسخ میشه مقدار صحیح ساعت و دقیقه هم میشه جزء صحیح حاصل ضرب مقدار اعشاری در 60

elec60
چهارشنبه 27 خرداد 1394, 09:16 صبح
باید دقت کرد که Hour در واقع component ساعت مربوط به TimeSpane رو بر می گردونه. مثلا اگر TimeSpan برابر 3 روز و دو ساعت باشه Hour برابر 2 میشه نه 74

aliramazani
چهارشنبه 27 خرداد 1394, 16:27 عصر
افرین eleco من به همین دلیل دارم 24 را با یاعت جمع میکنم.
راه ساده تری نیست؟
Floor چطوریه

hamid_hr
چهارشنبه 27 خرداد 1394, 16:41 عصر
var hours = (int)MyTimeSpan.TotalHours;

RmeXXXXXXXXX
چهارشنبه 27 خرداد 1394, 22:57 عصر
Math.Floor(..);