如何每3小时向DateTime变量添加10分钟

时间:2019-05-18 10:23:11

标签: c# loops

所以基本上,我有一个范围为3的飞机对象(以小时为单位),因此应该每3个小时停下来加油10分钟。我一直在尝试做一个计数器,并在几分钟之内添加其他差异,然后将其与plane.Range进行比较,但我没有任何运气。任何帮助将不胜感激。

DateTime startTime = DateTime.Parse(inputTime); // in format "18/05/2019 11:00:00 PM"
List<DateTime> temporaryTimes = new List<DateTime>();
temporaryTimes.Add(startTime); // Add initial value "23:00
List<string> timeStrings = new List<string>();

DateTime count = DateTime.Parse("00:00:00");

for (int i = 0; i < distanceTotal.Length; i++)
{
    if (count.Hour < plane1.Range)
    {
        temporaryTimes.Add(startTime.AddMinutes((Tour.CalTime(distanceTotal[i], plane1))));
        count = count.AddMinutes((Tour.CalTime(distanceTotal[i], plane1)));
        // string stringVersion = startTime.ToString("HH:mm");
        // timeStrings.Add(stringVersion);
        startTime = (startTime.AddMinutes((Tour.CalTime(distanceTotal[i], plane1))));
        var nextTime = temporaryTimes[i].AddMinutes((Tour.CalTime(distanceTotal[i], plane1)));

    }

    if (count.Hour >= plane1.Range)
    {
        DateTime test = temporaryTimes[i].AddMinutes(10);
        temporaryTimes.Add(test);
    }
}

当前输出:

18/05/2019 11:00:00 PM
18/05/2019 11:28:00 PM
19/05/2019 12:10:00 AM
19/05/2019 12:44:00 AM
19/05/2019 1:30:00 AM
19/05/2019 2:04:00 AM
19/05/2019 1:40:00 AM
19/05/2019 2:14:00 AM

预期输出(请注意在1:30-1:40的10分钟休息时间)

18/05/2019 11:00:00 PM
18/05/2019 11:28:00 PM
19/05/2019 12:10:00 AM
19/05/2019 12:44:00 AM
19/05/2019 1:30:00 AM
19/05/2019 1:40:00 AM
19/05/2019 2:15:00 AM
19/05/2019 3:00:00 AM

1 个答案:

答案 0 :(得分:0)

在第二个if块中,您也应该增加startTime,以使startTime在休息时间之后保持更新。

类似这样的东西:

if (count.Hour >= plane1.Range)
{
    startTime = startTime.AddMinutes(10);
    temporaryTimes.Add(startTime);
}