Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2015, 17:18   #31
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Раньше он показывал 5 часов с чем-то
это явно ошибка! Если у Вас ВДРУГ есть код, который это воспроизводит,
то можно и сделать ненужное - исследовать и выявить причину такого среднего значения.


Цитата:
Спасибо вам человеческое, за реальную помощь, а не так как дилетанты некоторые отвечают, почему вопрос задаёшь.
Не за что. Всегда пожалуйста.
Тему я не буду закрывать. Поэтому, если что - пишите, будем вместе смотреть, разбираться...



Цитата:
Я просто начинающий и всех тонкостей платформы .NET не знаю. Но буду учить и разбираться.
Не расстраивайтесь, я тоже в .NET дилетант. Многое гуглю, смотрю примеры...
Так что, как завещал великий В.И.Ленин - "Учиться, учиться и ещё раз учиться!"
Успехов!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.09.2015, 17:26   #32
Fil_1990
Пользователь
 
Регистрация: 23.09.2015
Сообщений: 76
По умолчанию

Ещё раз спасибо душевное!
Fil_1990 вне форума Ответить с цитированием
Старый 01.10.2015, 14:11   #33
Fil_1990
Пользователь
 
Регистрация: 23.09.2015
Сообщений: 76
По умолчанию

Сергей здравствуйте.
А актуальным будет выполнения условия, чтобы программа пропускала в подсчёте среднего времени, время более 2 часов?
Хотелось бы спросить с чего начать реализацию?
или доработать это условие?
Код:
 if (current_time.TotalHours > 2)
                        {
                            // в отдельный файл выведем значение более 2-х часов
                            A.WriteLine("{0}", current_time);  
                        }
Чтоб исключалось время более 2ч

Последний раз редактировалось Fil_1990; 01.10.2015 в 14:14.
Fil_1990 вне форума Ответить с цитированием
Старый 01.10.2015, 14:23   #34
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

всё просто:

Код:
                         if(current_time.TotalHours>2){
                           	     Console.WriteLine("A: {0}",current_time);  // в отдельный файл выведем значение более 2-х часов
                           }
                           else{  // иначе, если меньше двух часов - тогда суммируем
                               intervaltimesum += current_time;
                               countTime++;
                           }
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.10.2015, 14:31   #35
Fil_1990
Пользователь
 
Регистрация: 23.09.2015
Сообщений: 76
По умолчанию

Это уже второй такой блок?
Код:
intervaltimesum += current_time;
                               countTime++;
Объясните почему так?
Fil_1990 вне форума Ответить с цитированием
Старый 01.10.2015, 15:48   #36
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Это уже второй такой блок?
ни в коем разе!!

он должен быть один!

у вас был такой код:
Цитата:
Код:
                if (elements.GetLength(0) > 4)
                {
                    //Разбор 4 элемента массива
                    try
                    {
                        string[] times = elements[4].Split(':');
                        int hours = int.Parse(times[0]);
                        int minutes = int.Parse(times[1]);
                        int seconds = int.Parse(times[2]);
                        current_time = TimeSpan.FromHours(hours) + TimeSpan.FromMinutes(minutes) + TimeSpan.FromSeconds(seconds);

                        W.WriteLine("{0} {1} {2}  \t\t currenttime = {3} alltime = {4}", i-18, elements[0], elements[4], current_time, intervaltimesum);   
                        if (current_time.TotalHours > 2)
                        {
                            A.WriteLine("{0}", current_time);  // в отдельный файл выведем значение более 2-х часов
                        }

                        intervaltimesum += current_time;
                        countTime++;

                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
меняем его на такой:
Код:
                if (elements.GetLength(0) > 4)
                {
                    //Разбор 4 элемента массива
                    try
                    {
                        string[] times = elements[4].Split(':');
                        int hours = int.Parse(times[0]);
                        int minutes = int.Parse(times[1]);
                        int seconds = int.Parse(times[2]);
                        current_time = TimeSpan.FromHours(hours) + TimeSpan.FromMinutes(minutes) + TimeSpan.FromSeconds(seconds);

                        W.WriteLine("{0} {1} {2}  \t\t currenttime = {3} alltime = {4}", i-18, elements[0], elements[4], current_time, intervaltimesum);   
                        if (current_time.TotalHours > 2)
                        {
                            A.WriteLine("{0}", current_time);  // в отдельный файл выведем значение более 2-х часов
                        }
                        else{ 
                            intervaltimesum += current_time;
                            countTime++;
                        }

                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }

Последний раз редактировалось Serge_Bliznykov; 01.10.2015 в 15:50.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.10.2015, 16:15   #37
Fil_1990
Пользователь
 
Регистрация: 23.09.2015
Сообщений: 76
По умолчанию

Сергей спасибо, понял в чём ошибка была.

Сергей ни когда не сталкивался, с такими алгоритмами как например подсчитать сколько таких значений , сколько таких, сколько таких, и вывести в файл.
К примеру у меня во 2 элементе массива ,в строках перечисляются узлы в которых произошла ошибка, можно посчитать сколько 01,02,03 и т.д?
И объясните пожалуйста принцип работы алгоритма?

Последний раз редактировалось Stilet; 02.10.2015 в 08:47.
Fil_1990 вне форума Ответить с цитированием
Старый 01.10.2015, 17:13   #38
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

может в БД все перегнать?
хотя шарпом можно легко это итак посчитать, через LINQ например.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.10.2015, 17:30   #39
Fil_1990
Пользователь
 
Регистрация: 23.09.2015
Сообщений: 76
По умолчанию

Чтоб с LINQ работать надо хотя бы минимальную практику работы с ним иметь.
Fil_1990 вне форума Ответить с цитированием
Старый 02.10.2015, 08:23   #40
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

начать никогда не поздно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не работает вывод результат проверки теста. Utyf Помощь студентам 0 05.05.2013 14:55
C++ при написание слова вывод строчки. olegass Помощь студентам 0 12.02.2013 01:22
3 условия проверки. Оптимизация. artemavd Общие вопросы Delphi 15 22.12.2011 13:40
вывод в файл Dimarik Общие вопросы C/C++ 20 21.03.2011 19:40