我們有一個游泳者的時間數據庫。 要創建一個排名,我們希望獲得每個運動員的最快時間。從記錄中找到最短時間並將其分成LINQ
var rankings = (
from r in _db.Results
orderby r.swimtime
group r by r.athleteid into rg
select new
{
AthleteId = rg.Key,
FirstName = rg.Min(f2 => f2.Athlete.firstname),
Swimtime = rg.Min(f8 => f8.swimtime),
hours = rg.Min(f9 => f9.swimtime.Hours),
minutes = rg.Min(f10 => ("00" + f10.swimtime.Minutes.ToString()).Substring(("00" + f10.swimtime.Minutes.ToString()).Length - 2)), // to get 2 digits in minutes
seconds = rg.Min(f11 => ("00" + f11.swimtime.Seconds.ToString()).Substring(("00" + f11.swimtime.Seconds.ToString()).Length - 2)), // to get 2 digits in seconds
milliseconds = rg.Min(f12 => (f12.swimtime.Milliseconds.ToString() + "00").Substring(0, 2)), // because miliseconds are not always filled
}
);
現在排名創建正確,但是顯示的時間不是。
我知道問題是什麼,但不知道如何解決它:
在數據庫中,我們有一個具有2次游泳:00:01:02:10(1min2sec10)和00:00: 56:95(56sec95)
我們得到的結果是分鐘(= 00)的最小值,秒的最小值(= 02)和毫秒的最小值(= 10)
因時間而產生00:00:02:10
我們應該得到的是小時,分鐘,秒,最快的時間毫秒(= 00:00:56:95)
任何人任何想法如何解決這一問題?
試過這個,我得到了我的網頁游泳時間。然而,經過兩個小時的探索和嘗試,我仍然沒有按照我想要的方式將它格式化。 我想得到hh:mm:ss.00。有任何想法嗎 ? – 2011-02-18 20:59:54
尋找將此時間跨度轉換爲日期時間然後格式化的方向。 大多數解決方案都是這樣做的: public DateTime GetDateTimeFromTimeSpan(TimeSpan timespan) { return DateTime.Now.Subtract(timespan); } 這仍然留下我與ASPX: 的 <%#( 「Swimtime」)%> ItemTemplate中> asp:TemplateField> –
2011-02-18 21:50:07