Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获得两次之间的持续时间并将其分为分钟?_C#_Sql_Asp.net_Sql Server - Fatal编程技术网

C# 如何获得两次之间的持续时间并将其分为分钟?

C# 如何获得两次之间的持续时间并将其分为分钟?,c#,sql,asp.net,sql-server,C#,Sql,Asp.net,Sql Server,我有一张表格,老师可以在表格中输入时间和日期,她可以自由参加面试。在下面的例子中,教师在1月16日有一小时的自由时间。教师单击“关闭”后,数据将输入到sql server表中。 我想做的是从数据库中获取数据,并将其显示在学生页面上。但是,学生应该在它被拆分后看到它。这是因为每次面试只有15分钟。学生可以从拆分时间(02:15到02:20等)中选择自己喜欢的时间 我不知道如何表达这个问题。我知道这可能令人困惑,但如果有人理解,请帮助我 如何获得两次之间的持续时间并将其分为分钟 简单的回答是:你找

我有一张表格,老师可以在表格中输入时间和日期,她可以自由参加面试。在下面的例子中,教师在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”