
Mala pomoc s programom..
Ahojte,potrebujem pomoc trosku s programom v Java NetBeans..ked napisem datum narodenia ( napr 14.10.1995 ) tak mi vypise ze "Narodil si sa 14.Oktobra 1996"..vlastne cislo sa mi zmeni za nazov mesiaca..robim to cez dve polia,ale vypise mi to vlastne vsetky mozne riesenia..poslem vam kod a aj co pise,mohol by len niekto mi pomoct s malou upravou ? Dakujem..
public static void main(String[] args) {
String [] pole = {"januára" ,"februára" , "marca" , "apríla" , "mája" , "júna"
, "júla" , "augusta" , "septembra" , "októbra" , "novembra" , "decembra" };
String [] pole2 = {"1" ,"2" , "3" , "4" , "5" , "6"
, "7" , "8" , "9" , "10" , "11" , "12" };
String datum = JOptionPane.showInputDialog("Dátum narodenia : ");
System.out.println(datum);
String mesiac = datum.substring(3, 5);
for (int i = 0;i<pole.length;i++) {
for (int j = 0;j<pole2.length;j++) {
if (pole2[j].equals(mesiac)) System.out.println("Narodil si sa " +datum.substring(0, 3) +pole[i] + " "+ datum.substring(6));
}
}
}
}
A toto pise :
12.12.1992
Narodil si sa 12.januára 1992
Narodil si sa 12.februára 1992
Narodil si sa 12.marca 1992
Narodil si sa 12.apríla 1992
Narodil si sa 12.mája 1992
Narodil si sa 12.júna 1992
Narodil si sa 12.júla 1992
Narodil si sa 12.augusta 1992
Narodil si sa 12.septembra 1992
Narodil si sa 12.októbra 1992
Narodil si sa 12.novembra 1992
Narodil si sa 12.decembra 1992
Stačí presunúť jednu zátvorku a bude to ako má byť.
aha,a ktoru ? :D skusal som hocijaku a nejde aj tak..
alebo to skus takto, som ti to zredukoval, snad tam nie je preklep
Načo je tam dobré pole2 ? Syntaxi nerozumiem, ale datový typ String mesiac sa nemôže použiť v +pole[mesiac]. Musí sa to najprv previesť na číslo. datum.substring(3, 5) je tiež nevhodné. Čo ak sa narodil 1.1.1995 .. Jediný cyklus ktorý tam treba, je aby prešiel zadaný dátum , zistil či je tak nejak v správnom formáte a vytiahol z neho hodnotu medzi dvoma bodkami.
aha dobre,to som teda zmazal..teraz si mam dat cyklus for a prezret datum ? neviem co mysliš..
cyklus nepotrebuješ, a string datum si rozsekaj na čísla: den, mesiac, rok.
viď http://stackoverflow.com/questions/10541157/sscanf -equivalent-in-java
a následne ten mesiac použiješ ako index do pola, viď vyššie
A proč to dělat tak složitě, když jde jen o formátování data? Ať mi nikdo neříká, že Java neumí pro výstup nebo konverzi na retezec nastavit formát datumu...
zadany string prevest na datum a pres formát prevest zpet na retezec.
Rychle jsem nasel treba tohle:
http://docs.oracle.com/javase/8/docs/api/java/text /SimpleDateFormat.html