【问题标题】:How to split Fromdate and Todate based on weekdays(Sat,Sun) using linq c#如何使用linq c#根据工作日(周六,周日)拆分Fromdate和Todate
【发布时间】:2016-06-25 07:46:47
【问题描述】:

我有 Fromdate 和 Todate。我需要根据工作日(Sat,Sun)拆分 Fromdate 和 Todate 以列出

Fromdate-11/03/2016
Todate-31/03/2016

型号:

public class Splitdate
{
    public DateTime Fromdate { get; set; }
    public DateTime Todate { get; set; }
}

我需要在一个列表中输出:

list[0]=Fromdate:11/03/2016 Todate:11/03/2016
list[1]=Fromdate:14/03/2016 Todate:18/03/2016
list[2]=Fromdate:21/03/2016 Todate:25/03/2016
list[3]=Fromdate:28/03/2016 Todate:31/03/2016

【问题讨论】:

  • 不清楚你在问什么。
  • 基于工作日(周六、周日)?什么意思?
  • 请解释更多。
  • 我需要根据工作日筛选日期和今天。例如,如果我选择周六、周日,它会将日期拆分为列表

标签: c# linq list weekday


【解决方案1】:

这应该可行:

DateTime tempStart = StartDate;
var list = new List<Splitdate>();
for (DateTime date = StartDate; date.Date <= EndDate.Date; date = date.AddDays(1))
{
    if (day.DayOfWeek == DayOfWeek.Saturday)
    {
        var temp = new Splitdate();
        temp.Fromdate = tempStart;
        temp.Todate = date.AddDays(-1);
        list.Add(temp);
        tempStart.AddDays(2);
    }
}
if (tempStart <= EndDate)
{
    var temp = new Splitdate();
    temp.Fromdate = tempStart;
    temp.Todate = EndDate;
    list.Add(temp);
}

DateTime 有一个内置的 DayOfWeek 属性。循环从 Fromdate 到 Todate 的天数,并根据 DayOfWeek 值添加到列表中。

【讨论】:

  • @Mari 已修复。这是我的一些旧代码的复制粘贴错误。
猜你喜欢
  • 1970-01-01
  • 2020-11-08
  • 2016-03-08
  • 1970-01-01
  • 2019-05-04
  • 1970-01-01
  • 2023-04-08
  • 2023-01-27
  • 1970-01-01
相关资源
最近更新 更多