Portál AbcLinuxu, 14. května 2025 22:33
package com.prvnitest; import java.time.LocalDate; import java.util.Date; import java.util.Scanner; public class Main { public static void main(String[] args) { // write your code here Scanner in = new Scanner(System.in); System.out.println("Zadej rok: "); int rok; rok = Integer.parseInt(in.nextLine()); System.out.println("Zadej mesic: "); int mesic; rok = Integer.parseInt(in.nextLine()); System.out.println("Zadej den: "); int den; den = Integer.parseInt(in.nextLine()); int datum1 = (rok + mesic + den); System.out.println (datum1); LocalDate datum2 = LocalDate.of(2016, 12, 06); if (datum2.equals(datum1)) { System.out.printf("Datum %s je stejne jako datum %s", datum2,datum1); } else System.out.println("Tak bohuzel, datumy se neshodují"); } }
Řešení dotazu:
2016 12 06tak po
int datum1 = (rok + mesic + den);bude v datum1
int datum1 = (2016 + 12 + 06);teda
int datum1 = 2034A potom urobíš
if (datum2.equals(datum1))Odkiaľ má počítač vydedukovať, že premenná datum1 má reprezentovať nejaký dátum a nie napr. počet prejdených kilometrov, alebo teplotu? Metóda .equals() berie ako parameter typ Object, takže datum1 je prekonvertované na Object, konkrétne Integer s hodnotou 2034 a nie je dôvod, aby equals() povedal true. Prečo si datum1 vyrobil ako
int datum1 = (rok + mesic + den);a datum2 si vyrobil pomocou:
LocalDate datum2 = LocalDate.of(2016, 12, 06);? Vidíš ten rozdiel?
LocalDate datum1 = LocalDate.of(rok, mesic, den);
LocalDate datum1 = LocalDate.of(rok, mesic, den); LocalDate datum2 = LocalDate.of(2016, 12, 06); if (datum2.equals(datum1))což mi ovšem hlásí vyjímku:
Error:(22, 46) java: variable mesic might not have been initialized...
mesic
.
int mesic;
rok = Integer.parseInt(in.nextLine());
takže správně:
int mesic;
mesic = Integer.parseInt(in.nextLine());
int mesic = Integer.parseInt(in.nextLine());nebudeš tak dělat tyto zbytečné chyby a zlepší se čitelnost kódu.
package com.porovnaniData; import java.time.LocalDate; import java.util.Date; import java.util.Scanner; public class Main { public static void main(String[] args) { // write your code here Scanner in = new Scanner(System.in); System.out.println("Zadej rok: "); int rok = Integer.parseInt(in.nextLine()); System.out.println("Zadej mesic: "); int mesic = Integer.parseInt(in.nextLine()); System.out.println("Zadej den: "); int den = Integer.parseInt(in.nextLine()); LocalDate datum1 = LocalDate.of(rok, mesic, den); LocalDate datum2 = LocalDate.of(2016, 12, 11); if (datum2.equals(datum1)) { System.out.printf("Datum %s je stejne jako datum %s", datum2,datum1); } else System.out.println("Tak bohuzel, datumy se neshodují"); } }
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.