c# - 给定开始日期和结束日期的简单方法

标签 c# .net linq datetime

有没有快速简单的方法来获得List<DateTime>给定开始和结束日期?

我显然知道我可以通过循环实现这一点,但我想知道是否有使用 Linq 或其他一些实用程序的更智能的方法。

注意 我需要一个 DateTime两个给定日期之间每一天的实例。

最佳答案

迭代器 block 对此非常有用。

我认为没有理由不为此使用 for 循环。您需要为每个日期执行一些运算符,假设您有那么多输出,没有任何方法会具有更好的渐近复杂度。

public static IEnumerable<DateTime> GetDates(DateTime startDate, DateTime endDate
    , TimeSpan interval)
{
    for (DateTime date = startDate; date < endDate; date.Add(interval))
    {
        yield return date;
    }
}

您也可以为固定间隔添加重载:

public static IEnumerable<DateTime> GetDays(DateTime startDate, DateTime endDate)
{
    return GetDates(startDate, endDate, TimeSpan.FromDays(1));
}

关于c# - 给定开始日期和结束日期的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14321344/

相关文章:

c# - 泛型类型 BoundedComponent 结构

c# - "The post' s 链接必须指向应用程序 's connect or canvas url"?

c# - 如何使用 LINQ 查询 ManagementObjectCollection,然后循环遍历返回的 ManagementObject 的 PropertyData?

c# - 递归复制文件

.net - 如何将 'Tags' 添加到我的简单博客文章类库和存储库中?

linq - 无法解析属性(复杂属性)

c# - 当条件在数据库中验证时,EF Core 3.0 在 LINQ 中进行条件排序

c# - 我应该如何在命令栏项目中设置搜索框?

c# - 在 C# 中保存 PNG 图像时丢失像素深度

c# - EqualityComparer<T>.Default 不够聪明