Esempio n. 1
0
 static function calculateNoteWindFinder($previsionDate)
 {
     $tempMin = 10;
     $tempNav = 15;
     // Température ou ca devient sympa de naviguer
     $nbFoisInfMin = 0;
     $nbFoisInfNav = 0;
     $nbFoisSupNav = 0;
     foreach ($previsionDate->getListPrevision() as $prevision) {
         // si dans la tranche horaire de $prevision->getTime()
         if (NoteWind::isInGoodTime($prevision->getTime())) {
             $temp = $prevision->getTemp();
             if ($temp != null) {
                 if ($temp < $tempMin) {
                     $nbFoisInfMin++;
                 } elseif ($temp < $tempNav) {
                     // si inférieur à tempNav mais sup à tempMin -> c'est bof mais on peut naviguer
                     $nbFoisInfNav++;
                 } else {
                     // sup à tempNav -> COOOOL
                     $nbFoisSupNav++;
                 }
             }
         }
     }
     // On calcule la note
     $note = -1;
     if ($nbFoisSupNav + $nbFoisInfNav + $nbFoisInfMin > 0) {
         if ($nbFoisInfMin > 0) {
             // si inférieur à tempMin -> on ne navigue pas de la journnée
             $note = 0;
         } else {
             $note = ($nbFoisSupNav + $nbFoisInfNav * 0.5) / ($nbFoisSupNav + $nbFoisInfNav + $nbFoisInfMin);
         }
     }
     // else impossible de calculer la note: pas de données -> -1
     return $note;
 }
Esempio n. 2
0
 static function calculateNoteMeteoFrance($previsionDate)
 {
     $isDanger = false;
     foreach ($previsionDate->getListPrevision() as $prevision) {
         // si dans la tranche horaire de $prevision->getTime()
         if (NoteWind::isInGoodTime($prevision->getTime())) {
             $meteo = $prevision->getMeteo();
             if ($meteo == "a-o" || $meteo == "p-o") {
                 // Danger lorsque:
                 // "Averses orageuses" -> "a-o";
                 // "Pluies orageuses" -> "p-o";
                 $isDanger = true;
             }
         }
     }
     return $isDanger ? 0.5 : 1;
 }