2013-11-07 2 views
0

Для следующего кода:Как изменить значение int пользователем?

import java.util.*; 
public class Convert 
{ 
    public static void main(String[] args) 
{ 
    Scanner keyboard = new Scanner(System.in); 
    System.out.print("Enter the duration of the event in seconds: "); 
    int duration = keyboard.nextInt(); 

int days; 
int hours; 
int minutes; 
int seconds; 

Что мне нужно есть, если пользователь вводит - < 60 секунд, это добавит на секунды -> 60 секунд, это добавит на минуты -> 3600 секунд, он добавит на часы -> 86400 секунд, это добавит к дням.

Так, например, , если пользователь вводит значение 3750 (= 3600 + 120 + 30), выход должно быть:

Событие длится 0 дней 1 часов 2 минуты и 30 секунд

+2

Хорошо, так что пошло не так в первую очередь? –

+1

У вас, похоже, есть некоторые проблемы с форматированием. Ваш отступ может быть немного выключен, и вам, кажется, не хватает конца вашего кода. Не могли бы вы предоставить достаточно, чтобы заполнить эту отсутствующую фигурную скобку? – BlackVegetable

+0

Нам нужно больше кода. Это должно быть возможно сделать – Coffee

ответ

0
import java.util.*; 
public class Test 
{ 
    public static void main(String[] args) 
{ 
    Scanner keyboard = new Scanner(System.in); 
    System.out.print("Enter the duration of the event in seconds: "); 
    int duration = keyboard.nextInt(); 

    int days; 
    int hours; 
    int minutes; 
    int seconds; 

    days = duration/86400; 
    hours = duration % 86400/3600; 
    minutes = duration % 86400 % 3600/60; 
    seconds = duration % 86400 % 3600 % 60; 
    System.out.println("The event lasts "+days+" days "+hours+" hours "+minutes+" minutes and "+seconds+" seconds"); 
} 
} 
+0

Спасибо, это может звучать noobish, но что делает оператор% точно? –

+0

@ user2959072 По крайней мере, в этом случае вы можете думать о 'a% b' как о« остатке, который вы получите, когда вы разделите 'a' на' b' » –

+0

% или модуль даст вам остаток после деления. например, 3% 2 = 1, 20% 3 = 2, 5% 60 = 5 – Baby

0
public void seperateDuration(int dur) 
{ 
    if(dur >= 86400) //checks if duration is greater than 1 day 
    { 
     while(dur >= 86400) //decreases 86400 seconds from duration for each day and adds 1 to day counter 
     { 
      dur-=86400; 
      days++; 
     } 
    } 
    if(dur >= 3600) //decreases 3600 seconds from duration for each hour and adds 1 to hour counter 

    { 
     while(dur >= 3600) 
     { 
      dur-= 3600; 
      hours++; 
     } 
    } 
    if(dur >= 60) //decreases 60 seconds from duration for each minute and adds 1 to day minute 

    { 
     while(dur >= 60) 
     { 
      dur -= 60; 
      minutes++; 
     } 
    } 
    seconds += dur; //adds remaining duration to seconds (will be less than 60) 
} 
Смежные вопросы