NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 14 - Datum a čas od Javy 8 - Úprava a intervaly

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Odpovídá na Petr Kateřiňák
Matúš Olejník:24.9.2019 8:40
zbyva.get(ChronoUnit.DAYS)

ti vráti 1 pretože to je rozdiel medzi dňami 24 - 23 = 1.
Keby si dal

zbyva.get(ChronoUnit.DAYS)

tak to ti vráti 3 pretože 12 - 9 = 3 atď...
Ak chceš vrátiť rozdiel čisto v dňoch, môžeš to urobiť napr. takto

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

class Scratch {
    public static void main(String[] args) {
        LocalDate actualDate = LocalDate.now();
        LocalDate xMassDate = LocalDate.of(2019, 12, 24);
        System.out.println("Do Vánoc zbývá " + ChronoUnit.DAYS.between(actualDate, xMassDate) + " dnů");
    }
}
Odpovědět
24.9.2019 8:40
/* I am not sure why this works but it fixes the problem */
Avatar
Odpovídá na Matúš Olejník
Petr Kateřiňák:24.9.2019 12:50

Díky :-) To je přesně to, co bych očekával jako typickou ukázku použití metody between(), s tím, že v případě potřeby existuje i obrácená varianta, která počítá rozsah tak jak je to v příkladu. Aktuální stav bez upozornění na odlišný, než očekávaný význam, je docela matoucí.

 
Odpovědět
24.9.2019 12:50
Avatar
Petr Kateřiňák:24.9.2019 15:32

Jak je myšlený odstavec Nastavení hodnoty?

LocalDate zacatek = LocalDate.of(1939, 9, 1);
zacatek = zacatek.withHour(10); // Nastaví hodiny na 10

Pořád mi to nejde do hlavy. Přece u LocalDate nemohu nastavit čas, Java toto ani nezkompiluje. Pokud by to mělo být LocalDateTime, tak ten zase nemohu inicializovat bez času. O čem tedy má být tento odstavec? Může jej, prosím, někdo opravit?

 
Odpovědět
24.9.2019 15:32
Avatar
Ondřej Kozel:25.10.2020 11:36

Ahoj, chtěl jsem vyzkoušet, jak bude Period reagovat na dnešní změnu času.
Ale zjistil jsem, že třída Period nemá žádné metody na práci s časem (funguje jen s LocalDate), i když je v tutoriálu napsáno, že funguje i s LocalDateTime.

Jak je to tedy v Javě s Period?

 
Odpovědět
25.10.2020 11:36
Avatar
Martin Kopuletý:19.10.2021 14:10

Z jakého důvodu se v parametru po názvu třídy a operátoru vypisuje časová jednotka velkými písmeny?

datumCas = datumCas.plus(3, ChronoUnit.DAYS);

Je to i u FormatStyle.FULL, LONG atp.

Má to nějakou spojitost s tím, že je to navázaný na třídu?

Děkuji za odpověď.

 
Odpovědět
19.10.2021 14:10
Avatar
Atrament
Člen
Avatar
Odpovídá na Martin Kopuletý
Atrament:19.10.2021 21:17

To jsou konstanty, ty se v javě vždycky píší velkými písmeny.

 
Odpovědět
19.10.2021 21:17
Avatar
Daniel Bodák:21.1.2022 23:13

chyba na konci použití metody withHour v LocalDate

 
Odpovědět
21.1.2022 23:13
Avatar
Atrament
Člen
Avatar
Odpovídá na Daniel Bodák
Atrament:22.1.2022 22:59

Máš pravdu. A co že si doteď nikdo nevšiml toho Halloweenu 31. září? :) Už jsem poslal do redakce opravu...

 
Odpovědět
22.1.2022 22:59
Avatar
Jakub Tioka
Člen
Avatar
Jakub Tioka:1.2.2022 18:47

článek dobrý, ale celé mi to příjde na javu, kde se snažíme vše dělat efektivně a krátce, zbytečně složité

 
Odpovědět
1.2.2022 18:47
Avatar
Niki Vávrová:5.1.2023 16:16

Dobře napsaný článek.

 
Odpovědět
5.1.2023 16:16
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 28.