Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
6 / 6 / 0
Регистрация: 30.01.2020
Сообщений: 23

Добавление новой задачи в TaskManager

05.02.2020, 20:45. Показов 4010. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья, добрый вечер!
Подскажите пожалуйста в чём ошибка в моём коде задачи.

Описание:
Напишем программу для упрощения ввода менеджером данных о задаче. При добавлении задачи менеджер Иван вводит следующий текст: "Добавить картинку на главный экран приветствия, задача начинается в 15 и заканчивается в 19" (минуты учитывать пока не будем).

Нужно найти в этом тексте время (часы) после выражения "начинается в" и "заканчивается в", рассчитать разницу между ними, и, если результат вычисления будет отрицательным или равным нулю, — завершить выполнение программы и вывести сообщение: "Формат введенных данных неверный".

Функционал программы:
Возможность ввода из консоли текста задачи и времени;
Распознавание времени начала начали задачи и времени завершения задачи;
Расчет времени на выполнение задачи и вывод на экран.


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.util.Scanner;
 
 
class Main {
 
  public static void main(String[] args) {
    
    Scanner in = new Scanner(System.in);      
    String input = in.nextLine();
        
    int startPos = input.indexOf("начинается в");
    
    String startTimeString = input.substring(startPos + 12, startPos + 15);
    startTimeString = startTimeString.trim();
     
    int startTime = Integer.parseInt(startTimeString);
    int endPos = input.indexOf("заканчивается в");
    
    String endTimeString = input.substring(endPos + 15, endPos + 18);
    endTimeString = endTimeString.trim();
    
    int endTime = Integer.parseInt(endTimeString);
    int time = endTime - startTime;
    if( time <= 0 ){
    
      System.out.print("Ошибка");
 
    } else {
 
    }
    System.out.print("На задачу потребуется: " + time + " ч."); 
    in.close();
 
  }
}
Прога то работает, то висит, прошу помощи.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.02.2020, 20:45
Ответы с готовыми решениями:

Добавление новой записи в таблицу и осуществление запроса на добавление при загрузке формы
Здравствуйте. Есть одна просьба, подскажите как сделать или пример кода покажите на вот такую фишку, при открытии формы для ввода данных в...

Добавление новой строки
Помогите я добавляю данные на делфи через навигатор в дбгрид. там много строк. Я хочу добавить новую строку например на 10-й строке(это...

Добавление новой записи
Добрый вечер, пишу чат на основе бд и для регистрации пользователя требуется создание новой записи с его данными в таблице бд. Собственно в...

8
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
05.02.2020, 21:10
где висит?
0
6 / 6 / 0
Регистрация: 30.01.2020
Сообщений: 23
05.02.2020, 21:15  [ТС]
А можно пояснить для не одарённых в кодировании?

Добавлено через 3 минуты
Цитата Сообщение от xoraxax Посмотреть сообщение
где висит?
А можно пояснить для не одарённых в кодировании? Висит в компиляторе.
0
 Аватар для Aviz__
2759 / 2066 / 509
Регистрация: 17.02.2014
Сообщений: 9,492
06.02.2020, 09:43
Цитата Сообщение от AlberR Посмотреть сообщение
где висит?
https://www.cyberforum.ru/java/thread2250765.html - помогает понять где))
1
 Аватар для InvalidCode
295 / 471 / 86
Регистрация: 26.02.2018
Сообщений: 931
Записей в блоге: 2
06.02.2020, 10:44
Лучший ответ Сообщение было отмечено AlberR как решение

Решение

AlberR, держи, как вариант
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Helper1 {
    
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String[] ss = sc.nextLine().trim().split(" ");
        sc.close();
        int[] clock = new int[2];
        int ind = 0;
        for(int i = 0; i < ss.length; i++){
            try{
               clock[ind] = Integer.parseInt(ss[i].trim());
               ind++;
               if(ind == clock.length){
                   break;
               }
            }catch(NumberFormatException e){}
        }
        System.out.println(clock[1] - clock[0] > 0 ? "На задачу потребуется " + (clock[1] - clock[0]) + " ч." 
                : "Формат введенных данных неверный");
    }   
    
}
1
6 / 6 / 0
Регистрация: 30.01.2020
Сообщений: 23
06.02.2020, 20:29  [ТС]
Добрый вечер, я не знаком с методами обработки ошибок, а вы не поможете в моём убогом варианте указать, как ставится метод?
0
 Аватар для Aviz__
2759 / 2066 / 509
Регистрация: 17.02.2014
Сообщений: 9,492
06.02.2020, 21:32
Цитата Сообщение от AlberR Посмотреть сообщение
как ставится метод?
https://www.cyberforum.ru/post14231865.html - метод static int pointChecker(int x, int y). или что ты имеешь ввиду?
1
6 / 6 / 0
Регистрация: 30.01.2020
Сообщений: 23
06.02.2020, 21:43  [ТС]
В моей задачке нет метода обработки ошибок, вроде правильно написал, т.е., если написать "начинается в 11" "заканчивается в 8", выскочит что ругательное типа StringIndexOutOfBoundsException ну и куча всего другого, а должно выйти что-то типа "ошибка, попробуйте уточнить задачу". Вот как это делается, я не понимаю.
0
 Аватар для Aviz__
2759 / 2066 / 509
Регистрация: 17.02.2014
Сообщений: 9,492
07.02.2020, 10:25
AlberR, вот же, Бро! https://www.youtube.com/playli... c--6O6lfgE вникай.
вот, языковые конструкции для перехвата ошибок
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] ss = sc.nextLine().trim().split(" ");
        int[] clock = new int[2];
        int ind = 0;
        for(int i = 0; i < ss.length; i++){
            try{
                clock[ind] = Integer.parseInt(ss[i].trim());
                ind++;
                if(ind >= clock.length){
                    break;
                }
            }catch(NumberFormatException e){
                System.out.println("Введен неверный форомат числа!");
            }
        }
        System.out.println(clock[1] - clock[0] > 0 ? "На задачу потребуется " + (clock[1] - clock[0]) + " ч."
                : "((");
    }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2020, 10:25
Помогаю со студенческими работами здесь

Добавление новой записи
Уважаемые форумчане! Есть вопрос: программа работает с бд mysql, после авторизации пользователя ему доступны к просмотру только те записи,...

Добавление новой записи
Помогите плиз, нужно добавить новую запись в таблицу, она добавляется, но только при вводе в Edit числовых значений, в Edit1 должно...

Добавление новой планки
Купил новую оперативу с одинаковой частотой и объемом, компьютер запустился,но отображает столько же памяти сколько и было,что делать?

Добавление новой записи
Всем привет! В delphi совсем начинающий, поэтому прошу совета. Столкнулся с такой проблемой. У меня есть форма для добавления новой...

Добавление новой строки
Доброго времени суток! Нужна помощь в добавлении новой записи в txt файл, а точнее: Хочу сделать программку для записи в неё паролей...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru