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

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

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

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

Описание:
Напишем программу для упрощения ввода менеджером данных о задаче. При добавлении задачи менеджер Иван вводит следующий текст: "Добавить картинку на главный экран приветствия, задача начинается в 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.02.2020, 20:45
Ответы с готовыми решениями:

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

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

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

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

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

Добавлено через 3 минуты
Цитата Сообщение от xoraxax Посмотреть сообщение
где висит?
А можно пояснить для не одарённых в кодировании? Висит в компиляторе.
0
2711 / 2024 / 502
Регистрация: 17.02.2014
Сообщений: 9,416
06.02.2020, 09:43 4
Цитата Сообщение от AlberR Посмотреть сообщение
где висит?
https://www.cyberforum.ru/java/thread2250765.html - помогает понять где))
1
295 / 468 / 86
Регистрация: 26.02.2018
Сообщений: 931
Записей в блоге: 2
06.02.2020, 10:44 5
Лучший ответ Сообщение было отмечено 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  [ТС] 6
Добрый вечер, я не знаком с методами обработки ошибок, а вы не поможете в моём убогом варианте указать, как ставится метод?
0
2711 / 2024 / 502
Регистрация: 17.02.2014
Сообщений: 9,416
06.02.2020, 21:32 7
Цитата Сообщение от 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  [ТС] 8
В моей задачке нет метода обработки ошибок, вроде правильно написал, т.е., если написать "начинается в 11" "заканчивается в 8", выскочит что ругательное типа StringIndexOutOfBoundsException ну и куча всего другого, а должно выйти что-то типа "ошибка, попробуйте уточнить задачу". Вот как это делается, я не понимаю.
0
2711 / 2024 / 502
Регистрация: 17.02.2014
Сообщений: 9,416
07.02.2020, 10:25 9
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
07.02.2020, 10:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2020, 10:25
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru