有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java弹性时间计算器字符串开关

所以我用了一段时间来构建这个耗时计算器,我几乎完成了它。我唯一的问题是我不知道如何切换字符串

例如,在我的代码中,用户可以输入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; 
               }

           }

共 (2) 个答案

  1. # 1 楼答案

    你的代码运行正常,没有问题。 但无论如何,这里有一个“其他”解决方案

    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/

  2. # 2 楼答案

    试试看

    else if (total > 12) {
        tt = total -12;   
        if(l.equals('Am'))    
        {
           l = 'Pm';
        } else {
           l = 'Am';
        }          
        System.out.println(tt);
        break; 
    }
    

    如果l等于Am将其更改为Pm则很简单,反之亦然