我是一名初學者學習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 –