我的案例场景是用户选择一个财政年度,例如2015年1月1日至2015年12月31日.然后他选择了几天说'星期六','星期天'.
我想获取上述标准之间的所有日期.
我可以得到这样的日期: -
....
for (var date = fromDate; date <= toDate; date = date.AddDays(1))
temp.Add(date);
Run Code Online (Sandbox Code Playgroud)
但如何在日期范围内只获得几天的"星期六","星期日"?
使用DayOfWeek属性:
for (var date = fromDate; date <= toDate; date = date.AddDays(1))
{
if (date.DayOfWeek == DayOfWeek.Sunday || date.DayOfWeek == DayOfWeek.Saturday)
temp.Add(date);
}
Run Code Online (Sandbox Code Playgroud)
如果星期几的天数不是静态的:
HashSet<DayOfWeek> daysOfWeek = new HashSet<DayOfWeek> { DayOfWeek.Saturday, DayOfWeek.Sunday };
List<DateTime> temp = new List<DateTime>();
for (var date = fromDate.Date; date <= toDate; date = date.AddDays(1))
if (daysOfWeek.Contains(date.DayOfWeek))
temp.Add(date);
Run Code Online (Sandbox Code Playgroud)
var fromDate = new DateTime(2015, 1, 1);
var toDate = new DateTime(2015, 2, 15);
var dates = Enumerable.Range(0, (int)(toDate - fromDate).TotalDays + 1)
.Select(i => fromDate.AddDays(i))
.Where(i => i.DayOfWeek == DayOfWeek.Saturday || i.DayOfWeek == DayOfWeek.Sunday);
foreach(var date in dates)
{
Console.WriteLine("{0:yyyy-MM-dd ddd}", date);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1132 次 |
最近记录: |