如何为预建模板安排列表? (安慰)

时间:2014-08-15 23:29:05

标签: c# list console

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

这就是它在代码中的样子:

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
}

问题出现了,当名字超过3个时,小时数减半(比方说17:30)。

关于如何做这种事情的任何想法?

1 个答案:

答案 0 :(得分:0)

您可以执行类似

的操作
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)
                });
        }
    }

人物看起来像

public class Person
{
    public int Id { get; set; }
    public DateTime StartTime { get; set; }
    public DateTime EndTime { get; set; }
}