2012-11-29 57 views
-1

設置我寫了這個代碼:如何比較時間與時間,我在文本框中

DateTime LateInTime = Convert.ToDateTime(dsAtt.Tables[0].Rows[i][1]); 
int resultIn = DateTime.Compare(StfInTime, LateInTime); 

if (resultIn > 0) 
{ 
    if (DateTime.Compare(LateInTime, AlwLateTime)<=0) // count for 15min 
    { 
     CLD += 1; 
    } 
    else if (DateTime.Compare(LateInTime, AlwLateTime1) <= 0) // count for 30min 
    { 
     CLD1 += 1; 
    } 
    else if (DateTime.Compare(LateInTime, AlwLateTime2) <= 0) // count for 60min 
    { 
     CLD2 += 1; 
    } 
    else 
    { 
     LateTime += 1; 
    } 
} 
+3

請格式化你的代碼在未來更合適。 (我已經爲你解決了這個問題。)接下來,告訴我們實際的問題。您向我們提供了代碼和標題,但僅此而已。你的「問題」目前是無法回答的,因爲這不是一個真正的問題。請閱讀http://tinyurl.com/so-list –

+1

我想你應該看看[TimeSpan](http://msdn.microsoft.com/en-us/library/system.timespan.aspx),然後重新訪問你的代碼 – V4Vendetta

+0

沒有問題也沒有描述你想要達到什麼或者什麼問題。請給我們更多關於這個問題的信息! – Carsten

回答

0

我覺得這是你追求的。它減去兩次來創建它們之間的時間量TimeSpan,然後提取跨度表示的分鐘數:

DateTime LateInTime = Convert.ToDateTime(dsAtt.Tables[0].Rows[i][1]); 
TimeSpan timeLateBy = LateInTime - StfInTime; 
double minutesLateBy = timeLateBy.TotalMinutes; 

if (minutesLateBy > 0) 
{ 
    if (minutesLateBy <= 15) 
     CLD += 1; 
    else if (minutesLateBy <= 30) 
     CLD1 += 1; 
    else if (minutesLateBy <= 60) 
     CLD2 += 1 
    else 
     LateTime += 1; 
} 
+0

感謝它運作良好,但我想要確切的時差,例如:如果我的工作人員時間是8.30,如果我在8.45去,這意味着我遲到了15分鐘 –

+0

如果你的員工時間是8:30,你去('LateInTime'? )在8:45,然後'minutesLateBy' _將會是''15.0';你想用它做什麼? – Rawling

+0

我只想計算最近的日子 –