2010-04-28 2 views
0

Эй, моя проблема заключается в следующем: Я пытаюсь создать код, в котором будет создан набор спортивных светильников с датами. Скажем, у меня 8 команд, с 7 раундами светильников.Хороший способ выпускать светильники

Я создал светильники, но хочу добавить на них генерацию дат. Так что, если бы у меня было 7 раундов, я бы поставил 28 дней, и это сделало бы каждый раунд через 4 дня, через 8 дней и т. Д.

Что было бы самым лучшим способом сделать это? Благодаря

+2

Что такое спортивный инвентарь? Матч? – MJB

+0

Да, я думал, если я сгенерировал светильники и добавил дату на них 4 дня друг от друга, на сайте я мог написать сценарий, чтобы показывать только приборы, у которых есть дата сегодня или раньше? Это должно работать да? – sark9012

ответ

0

Это должно делать то, что вы хотите, и позволяет нечетного количества команд. Даты могут быть не идеальными из-за округления:

$teams = array("TEAM A","TEAM B","TEAM C","TEAM D","TEAM E", "TEAM F","TEAM G","TEAM H","TEAM I"); 
    $days = 28; 
    $rounds = count($teams) -1; 

    //Number of Days Between Fixtures 
    $daysBetweenFixtures = floor($days/$rounds); 


    $fixtures = array(); 

    for($i =0; $i < count($teams); $i++) { 
     //Calculate Date of this round of fixtures 
     $date = date("D d M Y",mktime(0, 0, 0, date("m") , date("d")+ ($i * $daysBetweenFixtures) , date("Y"))); 

     $hasFixtureToday = array(); 

     for($j=$i; $j<$i+count($teams); $j=$j+2) { 
      $homeTeam = $teams[$j % count($teams)];   
      $awayTeam = $teams[($j+1) % count($teams)]; 

      if(!in_array($homeTeam,$hasFixtureToday) && !in_array($awayTeam,$hasFixtureToday)) { 
       $fixtures[$date][] = "{$homeTeam} vs {$awayTeam}"; 
       $hasFixtureToday[] = $homeTeam; 
       $hasFixtureToday[] = $awayTeam; 
      } 
     } 
    } 
    print_r($fixtures); 
0

Пример использования StrToTime() из PHP-кли:

php > echo date("Y-m-d", strtotime("+4 days")); 
2010-05-02 

php > echo date("Y-m-d", strtotime("+8 days")); 
2010-05-06 

php > echo date("Y-m-d", strtotime("+12 days")); 
2010-05-10 
+0

Ahh, я вижу, поэтому, если я создам алгоритм, который будет проходить через 4 дня на каждый набор светильников, он будет работать? – sark9012

+0

Я бы рекомендовал проверить его самостоятельно, так как вы не указали какой-либо код. Мы могли бы прокомментировать, если вы отредактировали свой вопрос с помощью соответствующего кода. – racerror

Смежные вопросы