所以我正在使用一段时间构建这个时间经过的计算器,我已经快完成了。我唯一的问题是我不知道如何切换字符串。
例如,在我的代码中,用户可以输入 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;
}
}
你的代码正在工作,没有任何问题。 但无论如何,这里有一个"其他"解决方案。
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/
试试
else if (total > 12) {
tt = total -12;
if(l.equals('Am'))
{
l = 'Pm';
} else {
l = 'Am';
}
System.out.println(tt);
break;
}
如果l
等于Am
则将其更改为Pm
很简单,反之亦然。