odejmowanie dat wprowadzonych w kalendarzu JDateChooser (swing)

0

Witam,
jestem początkującym w javie. Piszę program w swingu (GUI), chce aby użytkownik wykorzystując kalendarz (JDateChooser) wybrał dwie daty. Następnie chce obliczyć różnice miedzy tymi datami. Napisałem poniższy kod:

        DateFormat data = DateFormat.getDateInstance();
        String P1 = data.format(DchPoczatekP1);

        DateFormat data = DateFormat.getDateInstance();
        String K1 = data.format(DchKoniecK1);

który wykorzystuje wpisaną datę konwertuję ją do stringa, lecz nie mogę sobie poradzić, aby aby ta sama data została przekazana poniżej. W taki sposób aby była pobierana automatycznie a nie trzeba byłoby wpisywać jej ręcznie.

        Calendar date1 = Calendar.getInstance();
        date1.set(2000, 1, 1);
        Calendar date2 = Calendar.getInstance();
        date2.set(2015, 1, 1);
        
        long roznica =date2.getTimeInMillis()-date1.getTimeInMillis();
        Calendar result = Calendar.getInstance();
        result.setTimeInMillis(roznica);
        System.out.println(roznica/(1000*60*60*24)/365);

Będę wdzięczny za wszelką pomoc, bo siedzę nad tym kolejny dzień.
pozdrawiam.

0

Wkradł mi się błąd podczas modyfikacji. poniżej poprawiona wersja:

    DateFormat data = DateFormat.getDateInstance();
    String P1 = data.format(DchPoczatekP1.getDate());

    DateFormat data = DateFormat.getDateInstance();
    String K1 = data.format(DchKoniecK1.getDate());
0

Po raz milionowy napisze - po kiego grzyba używacie swinga zamiast JavaFX?

0

Nie wszystko od razu, najpierw jedno potem drugie. Nie da się wszystkiego naraz ogarnąć.
Znasz odp na moje pytanie?

0

Zupełnie nie rozumiem, skąd się daty biorą (JDataChooser to nie jest swing). Jeszcze bardziej nie rozumiem problemu z przekazaniem dat niżej, daty są przecież w zmiennych (polach) DchPoczatekP1 i DchKoniecP1.

0

Z tego co piszesz trochę zamieszałem.
Potrzebuję metody którą pobierając datę w stringu (lub jak datę ze Stringa przekonwertować do np int) obliczy różnice między nimi, tzn jaki długi okres minął miedzy dwoma datami.

0

Musisz wpierw zdecydować jaka ma być postać Stringa z datą, np

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
Date date = sdf.parse(...);

Jeśli chodzi o różnicę dat, to w jakich jednostkach ma być różnica (doby, minuty, sekundy, milisekundy)?

0

Potrzebuję w dobach, aby docelowo określić ilość miesięcy i lat.

0

W starym stylu (Java 7)

int days = ((endDate.getTime() - startDate.getTime())/(24*60*60*1000);
0

Dzięki za pomoc. Twoje wskazówki naprowadziły mnie na rozwiązanie problemu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1