2016-09-04 3 views
1

Я пытаюсь написать программу, в которой консоль сообщает человеку разницу между двумя моментами без каких-либо сообщений, в «военное время» или 24 часа. До сих пор у меня есть:Как я могу получить временную разницу во времени для чтения?

import java.util.Scanner; 

public class MilTimeDiff { 

    public static void main(String[] args) { 
     Scanner s = new Scanner(System.in); 
     System.out.print("Enter the first time: "); 
     String time1 = s.next(); 
     System.out.print("Enter the second time: "); 
     String time2 = s.next(); 
     String tm1 = String.format("%02d", Integer.parseInt(time1)); 
     String tm2 = String.format("%02d", Integer.parseInt(time2)); 
     int t1 = Integer.parseInt(tm1); 
     int t2 = Integer.parseInt(tm2); 
     int difference = t2 - t1; 
     while (t1 < t2) { 
      String tmDif = Integer.toString(difference); 
      System.out.println("The difference between times is " + tmDif.substring(0, 1) + " hours " + 
        tmDif.substring(1) + " minutes."); 
      break; 
     } 
    } 

} 

Но у меня есть два вопроса: один: если я время один 0800, а время два 1700, это дает мне правильные 9 часов. Но если разница составляет 10 часов и более, она дает 1 час и много минут. Я думал, что использование метода String.format поможет, но ничего не делает.

два: я не знаю, как подойти к ситуации, когда время 1 является поздним временем 2.

Спасибо!

+0

Вы допустили ошибку, неправильно логика? 'Войдите в первый раз: 13 Введите второй раз: 343 Разница между временем составляет 3 часа 30 минут.' –

ответ

1

Вы можете попробовать ниже код, который даст разницу времени в военном формате:

public static void main(String[] args) { 
    Scanner s = new Scanner(System.in); 
    System.out.print("Enter the first time: "); 
    String time1 = s.next(); 
    System.out.print("Enter the second time: "); 
    String time2 = s.next(); 
    String tm1 = String.format("%02d", Integer.parseInt(time1)); 
    String tm2 = String.format("%02d", Integer.parseInt(time2)); 

    String hrs1 = time1.substring(0, 2); 
    String min1 = time1.substring(2, 4); 
    String hrs2 = time2.substring(0, 2); 
    String min2 = time2.substring(2, 4); 

    // int difference = t2 - t1; 
    if (Integer.parseInt(time1) < Integer.parseInt(time2)) { 
     int minDiff = Integer.parseInt(min2) - Integer.parseInt(min1); 
     int hrsDiff = Integer.parseInt(hrs2) - Integer.parseInt(hrs1); 
     if (minDiff < 0) { 
      minDiff += 60; 
      hrsDiff--; 
     } 

     System.out.println("The difference between times is " + hrsDiff + " hours " + minDiff + " minutes."); 

    } else { 
     int minDiff = Integer.parseInt(min1) - Integer.parseInt(min2); 
     int hrsDiff = Integer.parseInt(hrs1) - Integer.parseInt(hrs2); 
     if (minDiff < 0) { 
      minDiff += 60; 
      hrsDiff--; 
     } 

     System.out.println("The difference between times is " + hrsDiff + " hours " + minDiff + " minutes."); 

    } 

} 
+0

спасибо! это сработало; это сработало точно! – KrissyMichaelsson

+0

добро пожаловать ... :) – Abhijeet

Смежные вопросы