jack dselva Ответов: 1

Как получить общую продолжительность в miutes из коллекции списков в C#


  [TestMethod]
        public void GetTotalDurationFor_PassEventInBetween()
        {
            new List<EventItemModel>()
            {
                new EventItemModel() {DateTime = new DateTime(2017,1,1,10,0,0), Event = EventType.Enter},
                new EventItemModel() {DateTime = new DateTime(2017,1,1,10,30,0), Event = EventType.Pass},
                new EventItemModel() {DateTime = new DateTime(2017,1,1,11,30,0), Event = EventType.Leave},
            }.GetTotalDurationFor().Should().Be(90);
        }
            }

THIS TEST FAILES ...

PLEASE HELP


Что я уже пробовал:

public static double GetTotalDurationFor(this IEnumerable<EventItemModel> lst)
        {
            var selectedEmployeDayinout = lst.OrderBy(d => d.DateTime).ToList();
            const int enterExitOperations = 2;
            double duration = 0;

            if ((selectedEmployeDayinout.Count()%enterExitOperations) != 0) return duration;
            for (var i = 0; i < selectedEmployeDayinout.Count(); i ++)
            {
                var enterDate = selectedEmployeDayinout[i].DateTime;
                var leaveDate = selectedEmployeDayinout[i + 1].DateTime;
                duration += leaveDate.Subtract(enterDate).TotalSeconds;
            }
            return duration;
        }

1 Ответов

Рейтинг:
0

Patrice T

Совет: возьмите лист бумаги, сделайте это от руки и подумайте.
- Откуда вы знаете, какие ценности использовать ?
- Как только вы узнаете значения, какие операции приведут к желаемому результату ?
Ваша программа должна следовать тем же шагам.

Мы не делаем вашу домашнюю работу.
Домашнее задание предназначено не для того, чтобы проверить ваши навыки просить других людей сделать вашу работу, оно предназначено для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание курсов, которые вы прошли, а также проблем, с которыми вы сталкиваетесь при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по их исправлению.
Итак, попробуйте, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.

Как программист, ваша задача-создавать алгоритмы это решает конкретные проблемы, и вы не можете полагаться на кого-то другого, чтобы вечно делать это за вас, поэтому есть время, когда вам придется научиться этому. И чем скорее, тем лучше.
Когда вы просто просите решение, это все равно что пытаться научиться водить машину, обучая кого-то другого.
Создание алгоритма-это в основном поиск математики и необходимая адаптация к вашей реальной задаче.

Интересная ссылка для начала работы над новым проектом: Жизненный цикл разработки систем - Википедия[^]


Peter Leow

Вот так-то, 5эд!

Patrice T

Спасибо.

jack dselva

я хочу от тебя решения а не большой речи

Ralf Meier

Возможно, вы читали "великую речь" в этом месте ...
Я вижу руководство, которое задает правильные вопросы :
1.: ppolymorphe спросил вас : "как вы знаете, какие значения использовать" - и ... откуда ты это знаешь ?
2.: затем он спрашивает: "Как только вы узнаете значения, какие операции приведут к желаемому результату ?"

Так... Я думаю, что это решение (оно показывает вам, как идти вперед, если вы готовы читать) ...

Patrice T

Спасибо за комментарий.