Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 07.12.2014
Сообщений: 2

Классы и объекты.Время

07.12.2014, 18:40. Показов 6388. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста с данной задачей.
Создать класс и объекты, описывающие промежуток времени. Сам промежуток в классе должен задаваться тремя свойствами: секундами, минутами, часами. Сделать методы для получения полного количества секунд в объекте, сравнения двух объектов (метод должен работать аналогично compareTo в строках). Создать два конструктора: получающий общее количество секунд, и часы, минуты и секунды по отдельности. Сделать метод для вывода данных. Прочее на ваше усмотрение.

Пока вообще ничего не получается, очень нужна помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.12.2014, 18:40
Ответы с готовыми решениями:

Классы и объекты
Здраствуйте, Форумчани помогите решить эту задачу на языке Java Создать класс типа - дата с полями: день (1-31), месяц (1-12), год (целое...

Классы и объекты
Подскажите пожалуйста,вопрос конечно может и глупый,но меня поставил в тупик. есть два варианта кода: 1. public class Red { ...

Классы и объекты
Создать класс типа - циклическая очередь. Методы получают элемент и вставляют элемент.

9
 Аватар для snajper_ro
116 / 101 / 52
Регистрация: 14.09.2011
Сообщений: 696
Записей в блоге: 1
07.12.2014, 21:58
Для начало покажи что вышло!
0
 Аватар для artemama
0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 8
12.12.2017, 22:10
как бы тема старая, но судя по кол-ву просмотров не мертвая
выношу на суд более опытных прогеров свое решение данной задачи (+может кому поможет....), и не стесняйтесь высказывать свои замечания
писал в 2 класса
основной и main

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
36
37
38
39
40
public class TimeInterval {
 
    private int hour;
    private int minut;
    private int second;
 
    public TimeInterval(int h, int m, int s) {
        hour = h;
        minut = m;
        second = s;
    }
 
    public TimeInterval(int allsec) {
        second = allsec;
    }
 
    public int returnAllSecond() {
        return hour * 3600 + minut * 60 + second;
    }
 
    public void printAllTime() {
        System.out.println("Object1 \\(only seconds\\) = " + second);
    }
 
    public void printDividedTime() {
        System.out.println(String.format("Object2 have %s hours, %s minuts, %s seconds", hour, minut, second));
    }
 
    public int compareTime() {
        if (this.second >= this.returnAllSecond()) {
            System.out.println("Object1 => Object2");
        } else {
            System.out.println("Object1 < Object2");
        }
 
        return this.second - this.returnAllSecond();
 
    }
 
}
main
Java
1
2
3
4
5
6
7
8
9
10
11
public class MainTimeInterval {
 
    public static void main(String[] args) {
        TimeInterval obj1 = new TimeInterval(12578);
        TimeInterval obj2 = new TimeInterval(15,20,36);
        obj1.printAllTime();
        obj2.printDividedTime();
        obj2.compareTime();
    }
 
}
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
12.12.2017, 22:49
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
public class Task014 {
    public static void main(String[] args) {
        TimeLength timeOne = new TimeLength("One", 12, 24, 32);
        TimeLength timeTwo = new TimeLength("Two", 32, 78, 123);
        TimeLength timeThree = new TimeLength("Three", 32000);
        TimeLength timeFour = new TimeLength("Four", 32000);
 
        printTimeLength(timeOne);
        printTimeLength(timeTwo);
        printTimeLength(timeThree);
        printTimeLength(timeFour);
 
        System.out.println(timeOne.compareTo(timeTwo));
        System.out.println(timeOne.compareTo(timeThree));
        System.out.println(timeOne.compareTo(timeFour));
        System.out.println(timeTwo.compareTo(timeThree));
        System.out.println(timeTwo.compareTo(timeFour));
        System.out.println(timeThree.compareTo(timeFour));
    }
 
    public static void printTimeLength(TimeLength time) {
        System.out.println("Name [" + time.getName() + "]:");
        System.out.println("time =    " + time);
        System.out.println("seconds = " + time.getShareSeconds());
    }
}
 
class TimeLength {
    private String name;
    private int hours;
    private int minutes;
    private int seconds;
 
    public String getName() {
        return name;
    }
 
    public int getHours() {
        return hours;
    }
 
    public int getMinutes() {
        return minutes;
    }
 
    public int getSeconds() {
        return seconds;
    }
 
    public TimeLength(String name, int hours, int minutes, int seconds) {
        this.name = name;
        this.hours = Math.abs(hours) % 24;
        this.minutes = Math.abs(minutes) % 60;
        this.seconds = Math.abs(seconds) % 60;
    }
 
    public TimeLength(String name, int seconds) {
        this.name = name;
        convertSecondsToTime(seconds);
    }
 
    public int getShareSeconds() {
        return this.hours * 3600 + this.minutes * 60 + seconds;
    }
 
    private void convertSecondsToTime(int seconds) {
        seconds = Math.abs(seconds);
        this.hours = seconds / 3600 % 24;
        seconds %= 3600;
        this.minutes = seconds / 60;
        this.seconds = seconds % 60;
    }
 
    @Override
    public String toString() {
        return String.format("%d h. %d m. %d s", this.hours, this.minutes, this.seconds);
    }
 
    public String compareTo(TimeLength t) {
        String result = "";
        if (t != null) {
            int thisObj = getShareSeconds();
            int otherObj = t.getShareSeconds();
            result = String.format("%s %s %s", getName(), thisObj == otherObj ? "==" : thisObj > otherObj ? ">" : "<", t.getName());
        } else {
            result = "Input object == null";
        }
        return result;
    }
}
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
12.12.2017, 22:55
Цитата Сообщение от artemama Посмотреть сообщение
выношу на суд более опытных прогеров свое решение данной задачи
Это не решение. Это какой-то бессмысленный набор полей и методов.
0
 Аватар для artemama
0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 8
12.12.2017, 23:04
да уж... лучше б не позорился....
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
12.12.2017, 23:33
Цитата Сообщение от ArtemFM Посмотреть сообщение
Java
1
2
class TimeLength {
    private String name;
Не надо так делать. Соблюдай SRP. И ещё есть много замечаний. Особенно String compareTo. WHAT?

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
public final class Duration implements Comparable<Duration> {
 
    public static Duration of(int hours, int minutes, int seconds) {
        requireNonNegative("hours", hours);
        requireNonNegative("minutes", minutes);
        requireNonNegative("seconds", seconds);
        minutes += seconds / 60;
        hours += minutes / 60;
        minutes %= 60;
        seconds %= 60;
        return new Duration(hours, minutes, seconds);
    }
 
    public static Duration ofSeconds(int seconds) {
        final int hours = seconds / 3600;
        seconds %= 3600;
        final int minutes = seconds / 60;
        seconds %= 60;
        return new Duration(hours, minutes, seconds);
    }
 
    private final int hours;
    private final int minutes;
    private final int seconds;
 
    private Duration(int hours, int minutes, int seconds) {
        this.hours = hours;
        this.minutes = minutes;
        this.seconds = seconds;
    }
 
    public int getHours() {
        return hours;
    }
 
    public int getMinutes() {
        return minutes;
    }
 
    public int getSeconds() {
        return seconds;
    }
 
    public int toSeconds() {
        return hours * 3600 + minutes * 60 + seconds;
    }
 
    @Override
    public String toString() {
        return String.format("%dh%dm%ds", hours, minutes, seconds);
    }
 
    @Override
    public int compareTo(Duration o) {
        final int hoursComp = Integer.compare(hours, o.hours);
        if (hoursComp != 0) {
            return hoursComp;
        }
        final int minutesComp = Integer.compare(minutes, o.minutes);
        if (minutesComp != 0) {
            return minutesComp;
        }
        return Integer.compare(seconds, o.seconds);
    }
 
    private static void requireNonNegative(String name, int measure) {
        if (measure < 0) {
            throw new IllegalArgumentException("Negative " + name);
        }
    }
}
2
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
12.12.2017, 23:34
Цитата Сообщение от vredina23 Посмотреть сообщение
метод должен работать аналогично compareTo в строках
Ему как понял не нужно возвращать -1 0 1, а строку в виде результата

А поле с именем - это плохо, не спорю, но для простоты compareTo
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
12.12.2017, 23:36
Цитата Сообщение от ArtemFM Посмотреть сообщение
Ему как понял не нужно возвращать -1 0 1, а строку в виде результата
Посмотри как определён compareTo в классе String и что он возвращает.
1
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
12.12.2017, 23:42
А про замечания... - это да, их там куча. Делал на "быстряк". Я же не говорю, чтоб автору темы скопировать и сдать, а немного доработать...я всего лишь дал толчёк )))

Добавлено через 3 минуты
Он возвращает разницу между символами 2-х строк в индексе, если они не равны

Добавлено через 2 минуты
значит я просто не очень понял задачу. Ему нужно было возвращать из compareTo разницу в секундах между 2-мя объектами. Далее буду лучше читать задачу. Спасибо, я не смотрел до этого compareTo для String. Думал, как и у других -1 0 1. Буду знать теперь +1 к познаниям )))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.12.2017, 23:42
Помогаю со студенческими работами здесь

Классы и объекты
Как выполнить следующие задания: 1) Написать класс Round, задающий круг с указанными координатами центра, радиусом, а также свойствами,...

Классы и объекты(упражнение)
Добрый день. Не могу разобраться с упражнениями. Нужна помощь в решении del Переписывайте задание на форум Упражнение 1 ...

Классы, объекты, поля
В одном из учебников вычитал предложение: &quot;В java поля (fields) могут принадлежать классу или объекту&quot;. Не могу себе представить, что...

Классы и объекты. Использование сортировок
Классы и объекты. Использование сортировок Описать класс с именем Order, содержащий следующие поля: payer (расчетный счет...

Классы и объекты. Использование сортировок
Описать класс с именем Route, содержащий следующие поля: start (название начального пункта маршрута), end (название конечного пункта...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru