Как получить процент времени в часах?

Я разрабатываю веб-приложение, используя asp.net С#. В этом мне нужно получить процент времени. Я не понимаю, как это сделать. У меня есть TotalHours, который исходит от db. Мне нужно рассчитать 80% этого TotalHours.

Помощь будет оценена. Спасибо...

//This is how I am getting the TotalTime
TimeSpan TotalTime = TimeSpan.Parse(totalhours);

if(TotalTime != null)
{

TimeSpan Percentage= ( TotalTime* 80 ) / 100;
// here I need to get correct percentage in hrs
// If TotalTime is 10 hrs then Percentage should be 8 hrs 

}

person user2758530    schedule 04.07.2015    source источник
comment
возможный дубликат Multiply TimeSpan в .NET   -  person Rhumborl    schedule 04.07.2015
comment
Если это исходит из базы данных, вам не следует вызывать TimeSpan.Parse, потому что вы не должны хранить время в виде строк в своей базе данных. Вместо этого определите интересующую вас точность (например, минуты) и сохраните целое число этой точности. Затем используйте TimeSpan.FromMinutes, TimeSpan.TotalMinutes или аналогичные методы для другой точности.   -  person Matt Johnson-Pint    schedule 08.07.2015


Ответы (3)


TimeSpan totalTime = new TimeSpan(10, 0, 0);
TimeSpan percentage = TimeSpan.FromMilliseconds((totalTime.TotalMilliseconds * 80) / 100);

Получите общее количество миллисекунд из вашего totalTime, сделайте математику и преобразуйте его обратно в TimeSpan из миллисекунд.

Если вы довольны часами, просто измените:

TimeSpan percentage = TimeSpan.FromHours((totalTime.TotalHours * 80) / 100);
person msmolcic    schedule 04.07.2015

TotalHours свойство TimeSpan возвращает общее количество часов в виде double. Вот почему вы можете вычислить 80% ваших TimeSpan лайков;

double Percentage = (TotalTime.TotalHours * 4) / 5;
person Soner Gönül    schedule 04.07.2015

person    schedule
comment
Плюс 1. Мне это нравится, так как это занимает общее время, т.е. тики, а не только часы. - person Nikhil Agrawal; 04.07.2015
comment
@NikhilAgrawal да, я написал то же самое 7 минут назад, но неважно :) - person msmolcic; 04.07.2015
comment
Плюс 1 тебе тоже @msmolcic. - person Nikhil Agrawal; 04.07.2015