Je suis un débutant qui apprend Java, et j'essaye d'écrire un programme pour convertir une heure entrée par l'utilisateur à 12 heures, ou si c'est fourni en format 12 heures, pour le convertir en 24 heures.Conversion d'horloge de 24 heures en 12 heures - problème d'accolade d'accolades
J'ai écrit du code, qui a fonctionné comme je l'ai testé étape par étape, jusqu'à ce que je tente de modifier pour convertir le temps de 12 heures en format 24 heures.
Mon code est ci-dessous. Je m'excuse pour les redondances et la technique très inefficace, mais bon, je dois commencer quelque part. Je crois que mon problème est de séparer les blocs de code, car j'essaie d'avoir une instruction if
primaire pour tester si l'entrée se termine par 'm' (c'est à dire dans 12 heures ou 24 heures), puis plusieurs imbriqués if
, else
et else if
instructions.
import java.util.Scanner;
public class TimeConverter
{
public static void main (String [] args)
{
Scanner ask_user = new Scanner (System.in);
System.out.println("Enter a time ([h]h:mm [am|pm]): ");
String enter_time = ask_user.nextLine();
String am_pm = enter_time.substring(6);
String am = ("am");
String pm = ("pm");
if (enter_time.substring(7).equals("m"))
{
if (am_pm.equals(am))
{
String am_12 = enter_time.substring(0, 2);
String mins = enter_time.substring(2,5);
int am_12i = Integer.parseInt(am_12);
if (am_12i != 12)
{
String am_sub = enter_time.substring(0,5);
System.out.println(am_sub);
}
else if (am_12i == 12)
{
System.out.println("00" + mins);
}
}
else if (am_pm.equals(pm))
{
if (enter_time.equals("12:00 pm"))
{
System.out.println(enter_time);
}
else
{
String minutes = enter_time.substring(2,5);
String pm_add = enter_time.substring(0,2);
int pm_add_i = Integer.parseInt(pm_add);
int pm_add_fin = pm_add_i + 12;
String pm_add_finS = Integer.toString(pm_add_fin);
String converted_pmtime = (pm_add_finS + minutes);
System.out.println(converted_pmtime);
}
else if (enter_time.substring(7) != ("m"))
{
String 24hour = enter_time.substring(0,2);
String 12hourmins = enter_time.substring(2,7);
int 24hournum = Integer.parseint(24hour);
if (enter_time.equals("00:00"))
{
System.out.println("12" + 12hourmins);
}
else if (24hournum <= 11)
{
String hour = Integer.toString(24hournum);
String minute = enter_time.substring(2,4);
String fin = (hour + minute + "am");
}
}
}
}
Apprenez à mettre votre code en retrait. Il va ** vraiment ** vous aider – litelite
Il vous manque plusieurs accolades et les noms de variables ne peuvent pas contenir de nombres (24hours est un nom de variable invalide). Commencez avec ceux. –
Ne comparez pas les chaînes en utilisant ==. "else if (enter_time.substring (7)!= ("m")) "est en fait redondant sous else mais si vous insistez, remplacez! = par! equals –