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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Сокращение времени

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Функция для сокращение времени
Илья 1111
Отправлено: 20 Сентября, 2016 - 09:34:07
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




Здравствуйте.
Помогите сделать систему цыкла для сокращение времени.
Допустим у меня есть 1 час то есть 3600 сек.
нужно его сократить в на 100% получилось 1800 сек то есть 3600 / 2, либо сократить на 200% но тогда уже нужно будет не 3600 делить на 3 а 1800 делить на два, чтобы если это 200 процентов то от часа осталось всего 15 минут и так до всё меньше и меньше с каждом разом. Подскажите как мне сделать данную систему?
 
 Top
Denkill
Отправлено: 20 Сентября, 2016 - 09:47:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




t/(procent*0.02)
t - время в секундах
procent - проценты


-----
Хо-Хо-Хо
 
 Top
andrewkard
Отправлено: 20 Сентября, 2016 - 09:55:53
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Илья 1111
Не уверен, что правильно:
PHP:
скопировать код в буфер обмена
  1.  
  2. $percent = 400;
  3. $time = 3600;
  4. echo $time / ((2 * $percent)/100);
  5.  
 
 Top
Илья 1111
Отправлено: 20 Сентября, 2016 - 10:22:53
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




Denkill вариант не подходит, при разных процентах если это 100 или 200 получаются разные числа но не как мне надо 1800 -> 2760-> 3150 и тд. и потом получившееся число мне нужно просто вычесть допустим 300% то тогда будет 3600 - 2760 = 450 то есть времени осталось на 450 секунд.

(Отредактировано автором: 20 Сентября, 2016 - 10:25:53)

 
 Top
Denkill
Отправлено: 20 Сентября, 2016 - 10:47:55
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




Илья 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.  


-----
Хо-Хо-Хо
 
 Top
Илья 1111
Отправлено: 20 Сентября, 2016 - 10:58:41
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




Denkill код работает но от выводит только 1800 -> 900-> 450 а надо чтобы он к предыдущему числу прибавлял получившийся число примерно так :1800 -> 1800 +900 = 2760-> 2760 + 450 = 3150 и тд

(Отредактировано автором: 20 Сентября, 2016 - 11:12:36)

 
 Top
Denkill
Отправлено: 20 Сентября, 2016 - 11:27:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




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);


Записывайте это всё в массив и делайте что хотите.


-----
Хо-Хо-Хо
 
 Top
Илья 1111
Отправлено: 20 Сентября, 2016 - 11:33:51
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




Denkill можно по подробней чтобы выводило сразу так 1800 -> 2760 -> 3150
 
 Top
Denkill
Отправлено: 20 Сентября, 2016 - 11:35:48
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




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.  

(Отредактировано автором: 20 Сентября, 2016 - 11:38:18)



-----
Хо-Хо-Хо
 
 Top
Илья 1111
Отправлено: 20 Сентября, 2016 - 14:06:59
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




Denkill я так проверял, но однако в таком варианте конечный результат получается всегда 3600
 
 Top
Sail
Отправлено: 20 Сентября, 2016 - 14:15:13
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




Илья 1111, напишите толком, какой числовой ряд хотите получить...
А то получается, будто в этом топике собралась группа заговорщиков/школьников/детсадов цев (нужное подчеркнуть) и общается на своём, недавно придуманном тайном языке...
Ведь "сократить на 100%" - означает "свести в ноль"...
 
 Top
Denkill
Отправлено: 20 Сентября, 2016 - 14:21:11
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




Sail, автор топика думает что сократить на 300% это 3 раза поделить число пополам, хотя верно что сократить на 100% это означает привести число к нулю


-----
Хо-Хо-Хо
 
 Top
Илья 1111
Отправлено: 20 Сентября, 2016 - 14:21:42
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




Sail Обясню ещё раз есть время 1 час применяем к этому времени бонус в % скажем нужно чтобы было 100 % то в этом случаи нужно время делилось на два то есть получается 30 мин, если бонус составляет 200 % то уже получается 30 минут делится на 2 и получателя 15 мин и так далее, естественно процент может быть любим, хоть 49% хоть 349%
 
 Top
Denkill
Отправлено: 20 Сентября, 2016 - 14:23:02
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




Илья 1111, диапазон при сокращении будет от 0-100% больше он не может быть

(Отредактировано автором: 20 Сентября, 2016 - 14:23:21)



-----
Хо-Хо-Хо
 
 Top
Sail
Отправлено: 20 Сентября, 2016 - 14:34:21
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




Илья 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

(Отредактировано автором: 20 Сентября, 2016 - 14:35:23)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB