时间计算器字符串开关



所以我正在使用一段时间构建这个时间经过的计算器,我已经快完成了。我唯一的问题是我不知道如何切换字符串。

例如,在我的代码中,用户可以输入 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很简单,反之亦然。

最新更新