Как добавить 10 минут в переменную DateTime каждые 3 часа - PullRequest
0 голосов
/ 18 мая 2019

Итак, в основном, у меня есть объект самолета с диапазоном (в часах) 3. Таким образом, каждые 3 часа самолет должен останавливаться на топливо в течение 10 минут.Я пытался создать счетчик и добавить дополнительную разницу к нему в считанные минуты и сравнить его таким образом с плоскостью. Дистанция, но мне не повезло.Любая помощь будет принята с благодарностью.

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

Ожидаемый выход (обратите внимание на 10-минутный перерыв в 1:30 - 1:40) :

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 голосов
/ 18 мая 2019

в вашем втором if блоке вы также должны увеличить startTime, чтобы обновлять startTime после перерыва.

как то так:

if (count.Hour >= plane1.Range)
{
    startTime = startTime.AddMinutes(10);
    temporaryTimes.Add(startTime);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...