найти сначала 1/2, а затем первое целое в возрастающих числах - PullRequest
1 голос
/ 22 апреля 2011

Я использую php для запуска списка дат. Каждой дате, являющейся днем ​​недели, присваивается процент 1, а затем увеличивается на процент.

Мне нужно иметь возможность пометить первый прирост, равный или более 0,5, затем первый прирост, равный или более 1, затем впоследствии равный или более 0,5, затем одинаковый для каждого целого числа.

Проблема, с которой я сталкиваюсь, заключается не в том, чтобы найти нужную цифру, а в том, чтобы игнорировать результат, пока он не появится снова.

Я не могу округлить больше, чем у меня, так как в прошлом, в конечном счете, это повредит любой стороне по-другому.

Вот вывод небольшой части того, что я имею в надежде, что это имеет больше смысла.

* * 1010

Добавление запрошенного кода. Здесь много выходных данных, поэтому я могу видеть, что они делают. это будет удалено, как только я узнаю, что он делает то, что мне нужно.

Примечание к $ x. Здесь все статично, но будет динамически, поэтому я должен быть обеспокоен тем, что первая десятичная точка не всегда может содержать 5, чтобы сказать мне, что она равна 1/2

$startDate = '2011-01-01';
$x= 25/260; 
$y = 0;

while (strtotime($startDate) <= strtotime($today)) {

echo $startDate;
    if(is_weekday($startDate)) {
    $y = $x+$y;
    print ' Earned: '.round($x,6).' Accrued: '.round($y,6).'<br />';
    } else {
    print ' Weekend <br />';
    } 
$startDate = date ('Y-m-d', strtotime('+ 1 day', strtotime($startDate)));
}

Ответы [ 2 ]

1 голос
/ 22 апреля 2011

Установите counter на 1. Продолжайте, пока не найдете значение, большее или равное counter * 0.5. Отметьте его, увеличьте counter на 1 и повторите.

0 голосов
/ 22 апреля 2011
$count = 1;
while(your loop for displaying said content, foreach() maybe)
{

   echo "{$timestamp} Earned: {$earned} Accrued: {$accrued}";
   if($accrued > ($count * 0.5)) { echo "<- should be marked"; $count++;}
   echo "<br/>";

}
...