首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将列表安排到预先构建的模板中?(控制台)

如何将列表安排到预先构建的模板中?(控制台)
EN

Stack Overflow用户
提问于 2014-08-15 23:29:05
回答 1查看 37关注 0票数 0

我有一个通用的名称列表,其编号取决于用户选择的内容。我想在一天中用户输入的时间范围内安排这些名称。例如:我们有3个名称,用户输入的时间是08:00-17:00。从08:00-17:00我们有9小时的-> 9/3=3,所以把名字安排在一个3小时的模板中。

这是它在代码中的样子:

代码语言:javascript
运行
复制
List<string> myList = new List<string>();
myList.Add(Name1);
myList.Add(Name2);
myList.Add(Name3);

Console.WriteLine("Enter hours range: ");
Console.ReadLine(); //in this case the user input is 08:00-17:00

if (myList.Count == 3)
{
    Console.WriteLine("8-11 " + myList.ElementAt(0)); //Name1
    Console.WriteLine("11-14 " + myList.ElementAt(1)); //Name2
    Console.WriteLine("14-17 " + myList.ElementAt(2)); //Name3
}

问题来了,当有三个以上的名字和时间减半(让我们说17:30)。

对如何做这种事有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-16 01:06:18

你可以做这样的事

代码语言:javascript
运行
复制
private static void CalculateTimeIntervals()
    {
        var startTime = new DateTime(2014, 8, 15, 8, 0, 0);
        var endTime = new DateTime(2014, 8, 15, 17, 0, 0);
        var lengthOfTime = endTime - startTime;
        var numberOfPeople = 4;
        var dividedLengthOfTime = lengthOfTime.Ticks / numberOfPeople;
        var people = new List<Person>();

        for (int i = 1; i <= numberOfPeople; i++)
        {
            people.Add(
                new Person
                {
                    Id = i,
                    StartTime = startTime.AddTicks((dividedLengthOfTime * i) - dividedLengthOfTime),
                    EndTime = startTime.AddTicks(dividedLengthOfTime * i)
                });
        }
    }

看上去像什么人

代码语言:javascript
运行
复制
public class Person
{
    public int Id { get; set; }
    public DateTime StartTime { get; set; }
    public DateTime EndTime { get; set; }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25335538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档