/// <summary> /// 根據時間段獲取每星期X的總數 /// </summary> /// <param name="beginDateTime">開始時間</param> /// <param name="endDateTime">結束時間</param> /// <param name="week">星期幾 0:星期日</param> /// <returns></returns> public static int GetWeekCount(DateTime beginDateTime, DateTime endDateTime, List<DayOfWeek> weekList) { } 如何讓這個單元測試相等呀? List<DayOfWeek> list = new List<DayOfWeek>(); list.Add(DayOfWeek.Tuesday); list.Add(DayOfWeek.Wednesday);//從2012-5-1日到2012-5-31 日有10天符合星期二或星期三 TestHelper.Test(DateTimeHelper.GetWeekCount(DateTime.Parse("2012-5-1"), DateTime.Parse("2012-5-31"), list) == 10);
2 回答

德瑪西亞99
TA貢獻1770條經驗 獲得超3個贊
public static int GetWeekCount(DateTime begin, DateTime end, List<DayOfWeek> weekList) { return Enumerable.Range(0, (end - begin).Days) .Count(n => weekList.Contains(begin.AddDays(n).DayOfWeek)); }

智慧大石
TA貢獻1946條經驗 獲得超3個贊
獲取一段時間內有多少個周幾,你這樣寫試試呢:
public static int GetWeekCount(DateTime beginDateTime, DateTime endDateTime, List<DayOfWeek> weekList)
{
int num = 0;
for (; beginDateTime < endDateTime; beginDateTime = beginDateTime.AddDays(1))
{
foreach ( DayOfWeek dow in weekList)
{
if (beginDateTime.DayOfWeek == dow)
num++;
}
}
return num;
}
- 2 回答
- 0 關注
- 953 瀏覽
添加回答
舉報
0/150
提交
取消