Portál AbcLinuxu, 7. listopadu 2025 12:50
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.