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