2015-03-18 4 views
0

Я делаю программу преобразования времени в Java, и мне нужно исправить код. Когда я попытаюсь отобразить 3:04, он покажет 3: 4. Мне нужно исправить, чтобы показать нули перед числом меньше десяти без инструкций if и импортировать только java.util.Scanner и java.text.NumberFormat. И это должно быть в одном классе. Я бы хотел закончить его сегодня вечером. Если кто-то может помочь, я был бы признателен. вот приведенный ниже код. Я все импортировал два класса Java, которые выше.Необходимо исправить временное преобразование в hh: mm

Scanner sc = new Scanner(System.in); 


    final int MINUTES_IN_HOUR = 60; 
    int Minutes, Hours, InputedMinutes; 

    System.out.println("Enter a number in minutes: "); 
    InputedMinutes = sc.nextInt(); 
    sc.close(); 

    Hours = InputedMinutes/MINUTES_IN_HOUR; 
    Minutes = InputedMinutes%MINUTES_IN_HOUR; 

    System.out.println("Your time is " + Hours + ":" + Minutes);  
} 
+0

Я использую Java 1.7 для этого. – Wasosauce

ответ

3

format Использование:

System.out.format("%d:%02d", Hours, Minutes); 

Смотрите Java documentation для спецификации формата.

1

Вы можете также использовать printf и использовать даты времени форматировщик как следующий

Date date = new Date(); // For Date objects from java.util.date 

System.out.printf("Clock time is = %1$tH:%1$tM", date); // Prints hour and minute of the local clock time. 

Но вы показываете номер формата, который вы можете сделать с помощью:

System.out.printf("%d:%02d", Hours, Minutes); 

Или используя метод форматирования:

System.out.format("%d:%02d", Hours, Minutes); 

ОБНОВЛЕНИЕ

Поскольку ваш последний комментарий об использовании NumberFormat (или конкретных классов), следующие должны также работать в вашем случае (увидеть его в действии на IDEONE):

int hours = 30; 
int minutes = 3; // or could be 30; 

/* 
* Shows two digits and replaces with 0 if absent (if you use 0) 
* 
* If you use # instead of 0, it will NOT SHOW the leading 0 
* 
*/ 

DecimalFormat df = new DecimalFormat("00"); 

String formattedHours = df.format(hours); 
String formattedMinutes = df.format(minutes); 

System.out.printf("Clock hours and minutes = %s:%s", formattedHours, formattedMinutes); 

Для получения дополнительной информации вы можете обратиться Oracle, Customizing Formats

+0

Спасибо за помощь. Теперь он отображает 0 перед номером. – Wasosauce

+0

Знаете ли вы другой способ, используя формат чисел, а не формат? – Wasosauce

+0

@Wasosauce Как это понимать? – ha9u63ar

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