松散时间计算器字符串开关

时间:2019-04-25 05:43:49

标签: 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 个答案:

答案 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,反之亦然。