所以我用一段时间来构建这个时间已过去的计算器,而我已经快完成了。我唯一的问题是我不知道如何切换字符串。
例如,在我的代码中,用户可以输入am或pm,但是,一旦用户输入的经过时间超过12点,我将需要将am更改为pm,反之亦然,那么正确的方法是。
int start;
String l;
int elapsed;
int tt =0;
System.out.println("Enter the starting hour");
start = sc.nextInt();
System.out.println("Enter Am or Pm");
l = sc.next();
System.out.println("Enter the number of elasped hours");
elapsed = sc.nextInt();
int total = start + elapsed;
while ( start > 0 && start <= 12) {
if (total <=12) {
System.out.println("The time is: " + total + ":00 " + l);
break;
}
else if (total > 12) {
tt = total -12;
System.out.println(tt);
break;
}
}
答案 0 :(得分:0)
您的代码正在运行,没有任何问题。 但是无论如何,这里还是一个“其他”解决方案。
static void convert12(String str)
{
// Get Hours
int h1 = (int)str.charAt(0) - '0';
int h2 = (int)str.charAt(1)- '0';
int hh = h1 * 10 + h2;
// Finding out the Meridien of time
// ie. AM or PM
String Meridien;
if (hh < 12) {
Meridien = "AM";
}
else
Meridien = "PM";
hh %= 12;
// Handle 00 and 12 case separately
if (hh == 0) {
System.out.print("12");
// Printing minutes and seconds
for (int i = 2; i < 8; ++i) {
System.out.print(str.charAt(i));
}
}
else {
System.out.print(hh);
// Printing minutes and seconds
for (int i = 2; i < 8; ++i) {
System.out.print(str.charAt(i));
}
}
// After time is printed
// cout Meridien
System.out.println(" "+Meridien);
}
//Driver code
public static void main(String ar[])
{
// 24 hour format
String str = "17:35:20";
convert12(str);
}
}
输出:下午5:35:20
https://www.geeksforgeeks.org/convert-time-from-24-hour-clock-to-12-hour-clock-format/
答案 1 :(得分:0)
尝试
else if (total > 12) {
tt = total -12;
if(l.equals('Am'))
{
l = 'Pm';
} else {
l = 'Am';
}
System.out.println(tt);
break;
}
如果l
等于Am
很简单,将其更改为Pm
,反之亦然。