2013-02-20 758 views
-2

我正在做一个日常工作shedule项目的Windows手机。最初,我会将最大小时数或分钟数设置为一个变量,即假设为100%。如果时间减少,那么百分比也应该减少。如何将时间转换为百分比? (说明里面)

例如,假设我们给10小时为100%,如果小时减少到5,百分比应该是50%。

有人告诉我该怎么做。

+0

你能证明你试过了吗? – 2013-02-20 11:11:13

+1

你描述过程很好,问题是什么?只要实施它。 – 2013-02-20 11:11:57

+0

-1这是非常基本的数学。 [提示](http://en.wikipedia.org/wiki/Rule_of_three_%28mathematics%29#Rule_of_Three) – 2013-02-20 11:12:11

回答

2

一个简单的函数就足够了。请问您可以试试吗?

//Example initial time to 1 houre == 100% 
    TimeSpan InitialTime = new TimeSpan(1, 0, 0); 

    private double getPercentOnTime(TimeSpan currentTime,TimeSpan timeToRemove) 
    { 

     //Convert all to minutes 
     double currentTime_minute = currentTime.TotalMinutes; 
     double timeToRemove_minute = timeToRemove.TotalMinutes; 
     double InitialTime_minute = InitialTime.TotalMinutes; 

     //Calcul the additional time to remove from InitialTime 
     double totaltimeToRemove = currentTime_minute + timeToRemove_minute; 

     //calcul the new percent 
     double percent = (InitialTime_minute/100.0) * totaltimeToRemove; 

     return percent; 
    } 
0
TimeSpan totalTime; 
TimeSpan actualTime 

actualTime.TotalMiliseconds/totalTime.TotalMiliseconds * 100 
0

Somtehing那样:

var tenHours = TimeSpan.FromHours(10); // 100% 
var testHours = TimeSpan.FromHours(3); // 30% 
var percent = ((float) testHours.Ticks/tenHours.Ticks)*100f; 
0

可以格式化double值(0.0 - 1.0)作为使用"P" formatter的百分比。

(0.5).ToString("P0"); // "50%" 
+0

Downvoter关心评论? – 2013-02-21 04:49:41

+0

我不是downvoter,但我想这是因为这个问题不是关于格式,而是关于计算百分比。你的答案假定OP已经知道如何计算(他显然没有)。我是upvoting,因为我从来不知道'double.ToString(字符串格式)' – Nolonar 2013-02-21 09:12:43

0

简单的比例。如果10小时是100%5小时是多少... 5/10 * 100