有没有快速简单的方法来获得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/