C# 如何获得两次之间的持续时间并将其分为分钟?
我有一张表格,老师可以在表格中输入时间和日期,她可以自由参加面试。在下面的例子中,教师在1月16日有一小时的自由时间。教师单击“关闭”后,数据将输入到sql server表中。 我想做的是从数据库中获取数据,并将其显示在学生页面上。但是,学生应该在它被拆分后看到它。这是因为每次面试只有15分钟。学生可以从拆分时间(02:15到02:20等)中选择自己喜欢的时间 我不知道如何表达这个问题。我知道这可能令人困惑,但如果有人理解,请帮助我 如何获得两次之间的持续时间并将其分为分钟 简单的回答是:你找到总分钟数,然后除以一段中的分钟数(面试时长)C# 如何获得两次之间的持续时间并将其分为分钟?,c#,sql,asp.net,sql-server,C#,Sql,Asp.net,Sql Server,我有一张表格,老师可以在表格中输入时间和日期,她可以自由参加面试。在下面的例子中,教师在1月16日有一小时的自由时间。教师单击“关闭”后,数据将输入到sql server表中。 我想做的是从数据库中获取数据,并将其显示在学生页面上。但是,学生应该在它被拆分后看到它。这是因为每次面试只有15分钟。学生可以从拆分时间(02:15到02:20等)中选择自己喜欢的时间 我不知道如何表达这个问题。我知道这可能令人困惑,但如果有人理解,请帮助我 如何获得两次之间的持续时间并将其分为分钟 简单的回答是:你找
如果我理解正确,您已经从数据库中读取了日期、开始时间和结束时间,现在您希望以15分钟为增量显示从开始时间到结束时间(但不包括)的时间 如果是这样的话,下面的代码片段可能会有所帮助。我对示例中的日期进行了硬编码,但逻辑是它使用
Enumerable.Range
来获取从0
开始的值列表,计数为(开始和结束时间之间的总分钟数除以15)
,然后,对于这些值中的每一个,它通过添加[15倍该数字]来选择一个新的日期时间到开始时间的分钟数
例如,由于总分钟数为60
,然后除以15
为4
,因此范围为[0,1,2,3]
,然后我们将该数字乘以15
,并将其添加到开始时间,以:开始时间+0=2:00
,开始时间+15=2:15
,开始时间+30=2:30
,以及开始时间+45=2:45
// Pretend we got these from the database
DateTime date = DateTime.Parse("01/16/2019");
DateTime startTime = DateTime.Parse("2:00 PM");
DateTime endTime = DateTime.Parse("3:00 PM");
// Interview length in minutes
int interviewLength = 15;
// Get a list of 15 minute increments starting at start time
List<DateTime> increments =
Enumerable.Range(0, (int) (endTime - startTime).TotalMinutes / interviewLength)
.Select(minutes => startTime.AddMinutes(minutes * interviewLength))
.ToList();
// Show results to console
Console.WriteLine($"Start times available on {date.ToShortDateString()}:");
increments.ForEach(time => Console.WriteLine($"\t{time.ToShortTimeString()}"));
Console.ReadKey();
//假设我们从数据库中得到了这些
DateTime日期=DateTime.Parse(“2019年1月16日”);
DateTime startTime=DateTime.Parse(“下午2:00”);
DateTime endTime=DateTime.Parse(“下午3:00”);
//面试时长(分钟)
int访谈长度=15;
//获取从开始时间开始的15分钟增量列表
列表增量=
可枚举。范围(0,(int)(结束时间-开始时间)。总分钟数/访谈长度)
.Select(分钟=>startTime.AddMinutes(分钟*访谈长度))
.ToList();
//将结果显示到控制台
WriteLine($”开始时间在{date.ToShortDateString()}:”)上可用;
increments.ForEach(time=>Console.WriteLine($“\t{time.ToShortTimeString()}”);
Console.ReadKey();
输出
如果其中一些代码看起来令人困惑,那么写出来的“老派”方式(可能更容易阅读)将类似于:
for (DateTime time = startTime; time < endTime; time = time.AddMinutes(15))
{
Console.WriteLine(time.ToShortTimeString());
}
for(DateTime time=startTime;time
Table Schema,示例数据和预期的输出请仔细阅读,欢迎来到Stack Overflow。在发布问题时,请尽量具体,是否需要SQL或ASP.net的帮助?同时,尽可能多地提供信息。正如Squirrel所说,发布表格定义和输入/输出数据,以便人们可以尝试提供帮助。如果面试时间为15分钟,为什么会将时间分为2:15和2:20?或者你是说你想以5分钟为增量显示可能的可用开始时间?@RufusL-我猜这是一个输入错误,应该是“2:15和2:30”