2014-06-20 39 views
0

我有一定的時間即。上午10:30。用戶輸入一個表格。如果用戶在上午10點30分之後進行輸入,則應該計算從上午10點30分到當前時間的分鐘數並設置爲一個字符串。計算從一定時間到當前時間的分鐘數c#

這裏是我試過uptil現在: -

int hour = DateTime.Now.Hour; 
int mins = DateTIme.Now.Minute 
if(hour>10 && mins >30) 
{ 
    string lateBy = "You are late by:"+ //????? how do I calculate this? 
} 

任何幫助將是巨大的

+0

'(certain_time - Date.Now).TotalMinutes'? – bansi

+1

看看是否有任何答案在這裏幫助:[什麼最簡單的方法來減去時間?](http://stackoverflow.com/questions/3993226/c-whats-the-easiest-way-to-subtract-time) –

回答

1

使用TimeSpan找到2個datetime值之間的差異,並使用TotalMinutes屬性來獲取差異在幾分鐘內。

DateTime today = DateTime.Today; 
DateTime start = new DateTime(today.Year,today.Month,today.Day,10,30,00); 
DateTime now = DateTime.Now; 
int hour = now.Hour; 
int mins = now.Minute; 

TimeSpan ts = now.Subtract(start); 
if(ts.TotalMinutes > 0) //Time now is after 10:30 
{ 
    string lateBy = "You are late by:"+ ts.TotalMinutes.ToString(); 
} 
+0

我試過你的解決方案,但我得到負面的分鐘 – user3713706

+0

嘗試'現在 - 開始'。不知道爲什麼你會得到thia reault。 –

+0

如果時間爲11.25,則if(小時> 10&分鐘> 30)變爲假。這就是我得到負面價值的原因。我如何解決它? – user3713706

0

忽略日期,並假設它總是在同一天的10:30截止日:

string lateBy = "You are late by:"+ ((hour-10)*60 + mins-30) + " minutes"; 

注午夜之前纔會有效,即在同一天。

+0

使用** TimeSpan **比我的回答更好。 –

0

由於兩者都是日期時間,你可以利用DateTime.Subract

DateTime a = new DateTime(2014, 06, 20, 10, 30, 00); 
DateTime b = DateTime.Now; 
Console.WriteLine("You are late by:"+b.Subtract(a).TotalMinutes +"minutes"); 
Console.ReadLine(); 
相關問題