2015-09-19 69 views
0

我正在編寫一個Windows Phone 8.1應用程序(WINPRT XAML)在列表中計算最近7天的分鐘

public class AchievementsRecordType 
    { 
     public DateTime Date { get; set; } 
     public int Minutes { get; set; } 
     public int WorkOutID { get; set; } 

    } 

我由列表AchievementsRecordList 類型AchievementsRecordType,並在其中加入了一些日期與分鐘信息:

示例:

AchievementsRecordList.Add(new AchievementsRecordType { Date = DateTime.Today, Minutes = 7, WorkOutID = int.Parse(SelectedWorkoutID) }); 

輸出那列表是例如:

18-09-2015,7,510 20-09-2015,7,120

21-09-2015,7,433 21-09-2015, 7,437 21-09-2015,7,438

24-09-2015,7,120 24-09-2015,7,121

25-09-2015,7,340 25-09-2015,7,341 25-09-2015,7,342

今天是26-09-2015,如何計算過去7天全程分鐘數

回答

1
AchievementsRecordList 
.Where(x=>x.Date >= DateTime.Today.AddDays(-7)&& x.Date < DateTime.Today) 
.Sum(y=>y.Minutes); 
+0

我認爲你需要檢查 「> =」,而不是 「<=」。 「<=」會在過去7天前全天給我,不是嗎? –

+0

@ Arvaan:你是對的..糾正它。謝謝! – DarkKnight

1
lst.Where(x=>x.Date >= DateTime.Today.AddDays(-7) && x.Date <=DateTime.Today).Sum(x=>x.Minutes) 
+0

&& x.Date <= DateTime.Today? –

+0

我不知道你的數據是否也會包含未來日期的內容。如果你只想計算今天和早7天,你需要有上限檢查 – singsuyash

+0

暗夜,你的答案在邏輯上是相同的。他想要過去七天的記錄。所以顯然你不需要檢查x.Date <= DateTime.Today –