我是一名初学者学习Java的人,我试图编写一个程序将用户输入的时间转换为12小时的时间,或者如果它是以12小时时间格式提供,将其转换为24小时时间。24小时制转换为12小时制 - 大括号配对问题
我已经写了一些代码,这些代码在我一步步测试的过程中起作用,直到我尝试修改时间从12小时转换为24小时格式。
我的代码如下。我为裁员和非常低效的技术表示歉意,但是,嘿,我必须从某个地方开始。我相信我的问题在于分隔代码块,因为我试图使用主要的if
语句来测试输入是否以'm'结尾(即,如果它在输入时在12小时或24小时内),然后几个嵌套if
,else
和else if
声明。
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");
}
}
}
}
学习缩进你的代码。它会**真的帮助你 – litelite
你错过了几个大括号和变量名不能包含数字(24小时是一个无效的变量名)。从那些开始。 –
不要使用==比较字符串。 “else if(enter_time.substring(7)!=(“m”))“在其他情况下实际上是多余的,但如果您坚持,请将!=替换为!equals –