2010-04-28 2 views
0

안녕하세요, 제 문제는 다음과 같습니다. 스포츠 용 비품을 만든 날짜를 코드로 만들려고합니다. 7 개 라운드로 8 팀이 있다고 해봅시다.비품을 내놓을 수있는 좋은 방법

조명기를 생성했지만 날짜 생성기를 추가하려고합니다. 그래서 7 라운드를했다면 28 일을 넣을 것이고, 지금부터 8 일 후에 각 라운드를 4 일간 진행할 것입니다.

이렇게하는 가장 좋은 방법은 무엇입니까? 에서 감사

+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-CLI :

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

아, 내가 볼 수있는 알고리즘을 만들어 모든 조명기 세트에 4 일을 추가하는 루프를 만들면 작동할까요? – sark9012

+0

코드를 포함하지 않았으므로 직접 테스트 해 보시기 바랍니다. 관련 코드로 질문을 편집하면 추가로 의견을 낼 수 있습니다. – racerror

관련 문제