1 /// <summary>
2 /// 得到一个时间段内周末的天数
3 /// </summary>
4 /// <param name="stDate">开始时间</param>
5 /// <param name="endDate">结束时间</param>
6 /// <returns></returns>
7 public double GetWeekEndTotalDays(DateTime stDate,DateTime endDate)
8 {
9 double weekEndCount = 0.000;
10
11 if (endDate.Date.ToString() == stDate.Date.ToString() &&
12 (stDate.DayOfWeek.ToString() == "Saturday" || stDate.DayOfWeek.ToString() == "Sunday"))
13 {
14 weekEndCount += (endDate - stDate).TotalDays;
15 return weekEndCount;
16 }
17
18 //计算不在活动范围内的周末的天数
19 if (stDate.DayOfWeek.ToString() == "Saturday" || stDate.DayOfWeek.ToString() == "Sunday")
20 weekEndCount += (stDate.AddDays(1).Date - stDate).TotalDays;
21 stDate = stDate.AddDays(1).Date;
22 if (endDate.DayOfWeek.ToString() == "Saturday" || endDate.DayOfWeek.ToString() == "Sunday")
23 weekEndCount += (endDate - endDate.AddDays(-1).Date).TotalDays;
24 endDate = endDate.AddDays(-1).Date;
26
27 TimeSpan tsWeekEnd = endDate - stDate;
28 for (int j = 0; j <= tsWeekEnd.Days; j++)
29 {
30 if (stDate.DayOfWeek.ToString() == "Saturday" || stDate.DayOfWeek.ToString() == "Sunday")
31 {
32 weekEndCount += 1;
33 }
34 }
35 return weekEndCount;
36 }