Beispiel #1
0
 public static function getFrontiersPeriodID(&$debut, &$fin, $id)
 {
     $period = PeriodeCalendaire::getPeriods(null);
     if (1 <= date("n") and date("n") <= 8) {
         $annee = date("Y");
     } else {
         $annee = date("Y") + 1;
     }
     $ts = mktime(0, 0, 0, 1, 4, $annee);
     // définition ISO de la semaine 01 : semaine du 4 janvier.
     while (date("D", $ts) != "Mon") {
         $ts -= 86400;
     }
     $ts_max = $ts + 86400 * 7 * 36;
     $semaine = calendar::getNumLastWeek();
     $ts_ref = $ts;
     while ($semaine >= 33) {
         $ts -= 86400 * 7;
         $semaine--;
     }
     // =====================================================
     $i = 1;
     $j = 0;
     $stop = false;
     while ($period['id'][$j] != $id) {
         $j++;
     }
     while ($ts <= $ts_max && !$stop) {
         $ts_sup = $ts + 86400 - 1;
         if ($ts == $period['debut'][$j]) {
             $debut[] = $i;
             while ($period['fin'][$j] > $ts) {
                 $ts += 86400;
                 $i++;
                 if (($i - 1) % 6 == 0) {
                     $ts += 86400;
                 }
             }
             $fin[] = $i;
             $stop = true;
         } else {
             $ts += 86400;
             $i++;
             if (($i - 1) % 6 == 0) {
                 $ts += 86400;
             }
         }
     }
 }