Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Сокращение времени
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Сокращение времени

Страниц (2): [1] 2 »
 

1. Илья 1111 - 20 Сентября, 2016 - 09:34:07 - перейти к сообщению
Здравствуйте.
Помогите сделать систему цыкла для сокращение времени.
Допустим у меня есть 1 час то есть 3600 сек.
нужно его сократить в на 100% получилось 1800 сек то есть 3600 / 2, либо сократить на 200% но тогда уже нужно будет не 3600 делить на 3 а 1800 делить на два, чтобы если это 200 процентов то от часа осталось всего 15 минут и так до всё меньше и меньше с каждом разом. Подскажите как мне сделать данную систему?
2. Denkill - 20 Сентября, 2016 - 09:47:58 - перейти к сообщению
t/(procent*0.02)
t - время в секундах
procent - проценты
3. andrewkard - 20 Сентября, 2016 - 09:55:53 - перейти к сообщению
Илья 1111
Не уверен, что правильно:
PHP:
скопировать код в буфер обмена
  1.  
  2. $percent = 400;
  3. $time = 3600;
  4. echo $time / ((2 * $percent)/100);
  5.  
4. Илья 1111 - 20 Сентября, 2016 - 10:22:53 - перейти к сообщению
Denkill вариант не подходит, при разных процентах если это 100 или 200 получаются разные числа но не как мне надо 1800 -> 2760-> 3150 и тд. и потом получившееся число мне нужно просто вычесть допустим 300% то тогда будет 3600 - 2760 = 450 то есть времени осталось на 450 секунд.
5. Denkill - 20 Сентября, 2016 - 10:47:55 - перейти к сообщению
Илья 1111 пишет:
Denkill вариант не подходит, при разных процентах если это 100 или 200 получаются разные числа но не как мне надо 1800 -> 2760-> 3150 и тд. и потом получившееся число мне нужно просто вычесть допустим 300% то тогда будет 3600 - 2760 = 450 то есть времени осталось на 450 секунд.



PHP:
скопировать код в буфер обмена
  1.  
  2. $time = 3600;
  3. $procent = 300;
  4. $period = round($procent*0.01);
  5. for(i=0,$i<$period);i++){
  6.  $time = $time/2;
  7. }
  8. echo "Время: ".($time/60)." мин.";
  9.  
6. Илья 1111 - 20 Сентября, 2016 - 10:58:41 - перейти к сообщению
Denkill код работает но от выводит только 1800 -> 900-> 450 а надо чтобы он к предыдущему числу прибавлял получившийся число примерно так :1800 -> 1800 +900 = 2760-> 2760 + 450 = 3150 и тд
7. Denkill - 20 Сентября, 2016 - 11:27:12 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $time = 3600;
  2. $procent = 300;
  3. $period = round($procent*0.01);
  4. for(i=0,$i<$period);i++){
  5.  $arraytime[] = $time/2;
  6. }
  7. print_r($arraytime);


Записывайте это всё в массив и делайте что хотите.
8. Илья 1111 - 20 Сентября, 2016 - 11:33:51 - перейти к сообщению
Denkill можно по подробней чтобы выводило сразу так 1800 -> 2760 -> 3150
9. Denkill - 20 Сентября, 2016 - 11:35:48 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $time = 3600;
  2. $procent = 300;
  3. $period = round($procent*0.01);
  4. for(i=0,$i<$period);i++){
  5.  echo $time-($time/2);
  6. }
  7.  
10. Илья 1111 - 20 Сентября, 2016 - 14:06:59 - перейти к сообщению
Denkill я так проверял, но однако в таком варианте конечный результат получается всегда 3600
11. Sail - 20 Сентября, 2016 - 14:15:13 - перейти к сообщению
Илья 1111, напишите толком, какой числовой ряд хотите получить...
А то получается, будто в этом топике собралась группа заговорщиков/школьников/детсадов цев (нужное подчеркнуть) и общается на своём, недавно придуманном тайном языке...
Ведь "сократить на 100%" - означает "свести в ноль"...
12. Denkill - 20 Сентября, 2016 - 14:21:11 - перейти к сообщению
Sail, автор топика думает что сократить на 300% это 3 раза поделить число пополам, хотя верно что сократить на 100% это означает привести число к нулю
13. Илья 1111 - 20 Сентября, 2016 - 14:21:42 - перейти к сообщению
Sail Обясню ещё раз есть время 1 час применяем к этому времени бонус в % скажем нужно чтобы было 100 % то в этом случаи нужно время делилось на два то есть получается 30 мин, если бонус составляет 200 % то уже получается 30 минут делится на 2 и получателя 15 мин и так далее, естественно процент может быть любим, хоть 49% хоть 349%
14. Denkill - 20 Сентября, 2016 - 14:23:02 - перейти к сообщению
Илья 1111, диапазон при сокращении будет от 0-100% больше он не может быть
15. Sail - 20 Сентября, 2016 - 14:34:21 - перейти к сообщению
Илья 1111, то есть, где-то так: =3600/(2^((Бонус, %)/100))?
Такие значения:
Бонус, %; секунды
0 3600
1 3575,132984
5 3477,370784
10 3358,91877
30 2924,108627
55 2458,872462
100 1800
125 1513,613547
200 900
225 756,8067737
345 329,4192816

 

Powered by ExBB FM 1.0 RC1