C# 如何找到两个给定日期和时间之间的所有时间?

C# 如何找到两个给定日期和时间之间的所有时间?,c#,.net,winforms,C#,.net,Winforms,我总共有1440分钟 但现在我怎么能让它创建一个列表,其中包含a和b之间这两个日期之间的所有日期和时间,但以10分钟为单位 例如,列表中的第一项为: 2010年4月24日13:10:00 然后,下一项将被删除 2010年4月24日13:20:00 依此类推,直到b 2010年4月25日13:10:00 在列表中使用此格式或其他格式,但要获取两个给定日期之间的所有日期和时间。您可以循环: private void GetTimeBetween() { Dat

我总共有1440分钟

但现在我怎么能让它创建一个列表,其中包含a和b之间这两个日期之间的所有日期和时间,但以10分钟为单位

例如,列表中的第一项为:

2010年4月24日13:10:00

然后,下一项将被删除

2010年4月24日13:20:00

依此类推,直到b

2010年4月25日13:10:00

在列表中使用此格式或其他格式,但要获取两个给定日期之间的所有日期和时间。

您可以循环:

private void GetTimeBetween()
        {
            DateTime a = new DateTime(2010, 04, 24, 13, 10, 00);
            DateTime b = new DateTime(2010, 04, 25, 13, 10, 00);
            Console.WriteLine(b.Subtract(a).TotalMinutes);
            double d = b.Subtract(a).TotalMinutes;
        }
var list=newlist();
var start=新的日期时间(2010,04,24,13,10,00);
var end=新的日期时间(2010,04,25,13,10,00);
对于(日期时间日期=开始;日期)
试试这个

var start=newdatetime(2010,04,24,13,10,00);
var end=新的日期时间(2010,04,25,13,10,00);

对于(DateTime date=start;dateGee),有时过度工程是一件有趣的事情。有一个
Aggregate
函数可以将列表转换为标量值—让我们创建一个相反的函数

 var start = new DateTime(2010, 04, 24, 13, 10, 00);
 var end = new DateTime(2010, 04, 25, 13, 10, 00);
 for (DateTime date = start; date <= end; date = date.AddMinutes(10))
 {
     Console.WriteLine(date.ToString("dd/mm/yyyy HH:mm:ss"));
 }

活生生的例子:

从较低的日期开始,并持续增加10分钟,直到结束日期。现在将其放入codeAs@jeroenvanevel中,从较低的日期开始,并使用
a.AddMinutes(10)
直到您到达结束日期为止似乎没有问题,除了一个问题。如果
a>b
,那么您的代码仍然会返回一个结果,即
value
。我会这样做
var n=value;(!limit(n)){……}
@PonasJustas非常正确。
 var start = new DateTime(2010, 04, 24, 13, 10, 00);
 var end = new DateTime(2010, 04, 25, 13, 10, 00);
 for (DateTime date = start; date <= end; date = date.AddMinutes(10))
 {
     Console.WriteLine(date.ToString("dd/mm/yyyy HH:mm:ss"));
 }
public static class Extensions
{
    public static IEnumerable<T> Explode<T>(this T value, Func<T,T> next, Func<T,bool> limit)
    {
        var n = value;
        while(!limit(n))
        {
            yield return n;
            n = next(n);
        }
    }
}
DateTime a = new DateTime(2010, 04, 24, 13, 10, 00);
DateTime b = new DateTime(2010, 04, 25, 13, 10, 00);
var result = a.Explode(x => x.AddMinutes(10), x => x>b).ToList();