• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java dopełnienie zerem w dzacie

Object Storage Arubacloud
0 głosów
235 wizyt
pytanie zadane 12 marca 2019 w Java przez pionas0407 Gaduła (4,620 p.)

Witam,

Pisząc prostą klasę Time w Javie natrafiłem na pewien problem.

Chcę, aby funkcja toString zwracała format hh:mm:ss. 

Przykład:

01:13:07 -> dobrze

1:13:7 - > źle

Zrobiłem to bardzo nie efektywnie za pomocną warunków IF. Czy chce ktoś podpowiedzieć jak zrobić to w prosty sposób nie wplątując to instrukcji warunkowych :)?  

Dodaje kod aby nie było wątpliwości: 

private int hour;
private int minute;
private int second;

    public Time(int hour, int minute, int second) {
        if ((hour >= 0 && hour <= 23) && (minute >= 0 && minute <= 59) && (second >= 0 && second <= 59)) {
            this.hour = hour;
            this.minute = minute;
            this.second = second;
        } else {
            System.out.println("ERROR. hour = [0, 23], minute = [0, 59], second = [0, 59]");
        }
    }

public String toString() {
     return ?;
}

 

2 odpowiedzi

+2 głosów
odpowiedź 12 marca 2019 przez Mateusz51 Nałogowiec (28,180 p.)
wybrane 12 marca 2019 przez pionas0407
 
Najlepsza
+2 głosów
odpowiedź 12 marca 2019 przez Tomek Sochacki Ekspert (227,510 p.)

Możesz użyć gotowych rozwiązań w Javie, dedykowanych do takich celów, np.:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Main {

    public static void main(String[] args) {

        LocalDateTime date = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");

        System.out.println(date.format(formatter));

    }
}

 

komentarz 12 marca 2019 przez pionas0407 Gaduła (4,620 p.)
Dziękuje za odpowiedź, niestety w treści zadania jest napisane, że sekunda, minuta oraz godzina ma być zmienną typu int, i z tego ma powstawać godzina ;)
komentarz 12 marca 2019 przez Tomek Sochacki Ekspert (227,510 p.)
edycja 12 marca 2019 przez Tomek Sochacki
wg mnie totalnie bez sensu... nie spotkałem się jeszcze z polem które miałoby trzymać tylko czas, a nie cała datę albo timestamp... oczywiście, są takie jak najbardziej dostępne, nawet np. w bazach danych, ale ja wychodzę z założenia że jednak lepiej mieć zawsze nieco więcej informacji niż mniej... Ale to typowe w szkołach... nauczycielom wydaje się, że uczą tworzenia jakiś algorytmów itp. a tak naprawdę jest to g.. prawda... uczą żeby zapomnieć o dokumentacji i robić wsio na ifach :)
komentarz 12 marca 2019 przez pionas0407 Gaduła (4,620 p.)
haha bardzo trafny komentarz :)! To akurat nie nauczyciel zadał tylko trenuję Javę z tego zbioru zadań:

http://www3.ntu.edu.sg/home/ehchua/programming/java/j3f_oopexercises.html#zz-8.

Dziękuje za komentarz ;)!
komentarz 12 marca 2019 przez mbabane Szeryf (79,280 p.)

LocalDate i LocalDateTime ma takie metody fabryczne:

https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#of-int-int-int-

https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html#of-int-int-int-int-int-int-int-

LocalDate.of(2019, 3, 12);
LocalDateTime.of(2019, 3, 12, 21, 26, 0, 0);

 

Podobne pytania

0 głosów
0 odpowiedzi 125 wizyt
pytanie zadane 27 grudnia 2018 w Java przez Piotr Kusnierkiewicz Użytkownik (670 p.)
0 głosów
1 odpowiedź 542 wizyt
pytanie zadane 19 lipca 2020 w Java przez msky Początkujący (250 p.)
+1 głos
3 odpowiedzi 1,039 wizyt
pytanie zadane 9 sierpnia 2016 w Java przez itcloud Gaduła (3,380 p.)

92,568 zapytań

141,422 odpowiedzi

319,638 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...