Я хочу рассчитать процент минут в java. Например: 10% от 3 минут за 30 секунд.

Ниже мой код. У меня есть переменная t, у которой время в минутах. Я хочу вычислить 10% времени t и преобразовать это в миллисекунды. Как я могу это сделать? assmt_time10per ошибочно установлен на 0

int t = 3; // TIME IN MINUTES
long assmt_time = TimeUnit.MINUTES.toMillis(t);
long assmt_time10per = (t * 10) / 100;
1
Veer 13 Мар 2018 в 12:31

2 ответа

Лучший ответ

Для 10% преобразуйте время в миллисекунды и разделите на 10.

Ваша ошибка здесь (вы делите время на минуты)

assmt_time10per = (t * 10) / 100;

Должно быть (вы делите время на только что рассчитанные миллисекунды)

assmt_time10per = (assmt_time * 10) / 100;

Кроме того, когда вы делите 2 целых числа, в результате вы получаете целое число, здесь 3 на 10 равно 0,3, оно возвращает 0. Если вы хотите 0,3, вам нужно использовать числа типа double и установить значение double, то есть double d = (double)t / 10d;, это установит d на 0.3

Вот рабочий код для x процентов

int x = 10; // desired percentage
int t = 3; // time in minutes
long assmt_time = TimeUnit.MINUTES.toMillis(t);
long assmt_time10per = (assmt_time * x) / 100;
System.out.println(assmt_time10per);

Выходы 18000

4
Bentaye 13 Мар 2018 в 10:16

Я думаю, может быть, вы усложняете это необходимым.

double percent=10;
int tm = 3;
double seconds = (tm * 60) / percent;

Это даст вам процент в секундах.

0
tinstaafl 13 Мар 2018 в 11:42