begin process at 2012 02 15 19:14:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

probléme calcule dimanche


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probléme calcule dimanche

vendredi 21 juillet 2006 à 10:43:27 | probléme calcule dimanche

sensoide

Bonjour a tous,
voici donc une source que j'ai pris sur phpcs, mais il y a comme qui dirait un probléme pour le calcul des dimanches et je n'arive pas a voir ou ce trouve le dis probléme.
Voici le code:

function jour_ferie($timestampStart, $timestampEnd)
{
    // Initialisation de la date de début
    $jour = date("d", $timestampStart);
    $mois = date("m", $timestampStart);
    $annee = date("Y", $timestampStart);
    $nbFerie = 0;

    while ($timestampStart <= $timestampEnd)
    {

         // Définition des dates fériées fixes
        if($jour == 01 && $mois == 01) $nbFerie++; // 1er janvier
        if($jour == 01 && $mois == 05) $nbFerie++; // 1er mai
        if($jour == 08 && $mois == 05) $nbFerie++; // 5 mai
        if($jour == 14 && $mois == 07) $nbFerie++; // 14 juillet
        if($jour == 15 && $mois == 08) $nbFerie++; // 15 aout
        if($jour == 01 && $mois == 11) $nbFerie++; // 1 novembre
        if($jour == 11 && $mois == 11) $nbFerie++; // 11 novembre
        if($jour == 25 && $mois == 12) $nbFerie++; // 25 décembre

         // Calcul du jour de pâques
         $date_paques = easter_date($annee);
         $jour_paques = date("d", $date_paques);
         $mois_paques = date("m", $date_paques);
         if($jour_paques == $jour && $mois_paques == $mois) $nbFerie++;
         // Pâques

         // Calcul du jour de l ascension (38 jours après Paques)
         $date_ascension = mktime(date("H", $date_paques),
         date("i", $date_paques),
         date("s", $date_paques),
         date("m", $date_paques),
         date("d", $date_paques) + 39,
         date("Y", $date_paques)
         );
         $jour_ascension = date("d", $date_ascension);
         $mois_ascension = date("m", $date_ascension);
         if($jour_ascension == $jour && $mois_ascension == $mois) $nbFerie++;
         //Ascension

         // Calcul de Pentecôte (11 jours après Paques)
        $date_pentecote = mktime(date("H", $date_ascension),
         date("i", $date_ascension),
         date("s", $date_ascension),
         date("m", $date_ascension),
         date("d", $date_ascension) + 11,
         date("Y", $date_ascension)
         );
         $jour_pentecote = date("d", $date_pentecote);
         $mois_pentecote = date("m", $date_pentecote);
         if($jour_pentecote == $jour && $mois_pentecote == $mois) $nbFerie++;
         //Pentecote

         // Calul des samedis et dimanches
         $jour_julien = unixtojd($timestampStart);
         $jour_semaine = jddayofweek($jour_julien, 0);
         if($jour_semaine == 0) $nbFerie++;
         //dimanche (0)


         // Incrémentation du nombre de jour ( on avance dans la boucle)
         $jour++;
         $timestampStart=mktime(0,0,0,$mois,$jour,$annee);
         $nbJour = ($timestampEnd - $timestampStart / (60*60*24));
         $nbJourOuvrable = $nbJour - jour_ferie($timestampStart,$timestampEnd);

       ->et ça je n'en vois pas l'intéré.


    }
     return $nbFerie;
}


MERCI..




SSDS

vendredi 21 juillet 2006 à 11:31:27 | Re : probléme calcule dimanche
vendredi 21 juillet 2006 à 11:43:33 | Re : problème calcule dimanche

sensoide

Réponse acceptée !
J'ai trouver l'erreur et j'ai corrigez et ça marche du feu de Dieux.

<?php

// Calcul de la différence de date
$date_debutCP = '01/01/2006';
$date_finCP = '31/01/2006';

function NbJours($date_debutCP, $date_finCP)
{
  $tDeb = explode("/", $date_debutCP);
  $tFin = explode("/", $date_finCP);

  $diff = mktime(0, 0, 0, $tFin[1], $tFin[0], $tFin[2]) -
          mktime(0, 0, 0, $tDeb[1], $tDeb[0], $tDeb[2]);

  return(($diff / 86400)+1);

}


  $tDeb = explode("/", $date_debutCP);
  $tFin = explode("/", $date_finCP);

  $timestampEnd = mktime(0, 0, 0, $tFin[1], $tFin[0], $tFin[2]);
  $timestampStart = mktime(0, 0, 0, $tDeb[1], $tDeb[0], $tDeb[2]);


// SERVANT AU CALCUL DES JOURS OUVRABLES
// Fonction retournant le nombre de jour fériés samedis et
// dimanches entre 2 dates entrées en timestamp

function jour_ferie($timestampStart, $timestampEnd)
{
    // Initialisation de la date de début
      $jour = date("d", $timestampStart);
      $mois = date("m", $timestampStart);
      $annee = date("Y", $timestampStart);
    $nbFerie = 0;
    while ($timestampStart <= $timestampEnd)
    {

         // Définition des dates fériées fixes
        if($jour == 01 && $mois == 01) $nbFerie++; // 1er janvier
        if($jour == 01 && $mois == 05) $nbFerie++; // 1er mai
        if($jour == 08 && $mois == 05) $nbFerie++; // 5 mai
        if($jour == 14 && $mois == 07) $nbFerie++; // 14 juillet
        if($jour == 15 && $mois == 08) $nbFerie++; // 15 aout
        if($jour == 01 && $mois == 11) $nbFerie++; // 1 novembre
        if($jour == 11 && $mois == 11) $nbFerie++; // 11 novembre
        if($jour == 25 && $mois == 12) $nbFerie++; // 25 décembre

         // Calcul du jour de pâques
         $date_paques = easter_date($annee);
         $jour_paques = date("d", $date_paques);
         $mois_paques = date("m", $date_paques);
         if($jour_paques == $jour && $mois_paques == $mois) $nbFerie++;
         // Pâques

         // Calcul du jour de l ascension (38 jours après Paques)
         $date_ascension = mktime(date("H", $date_paques),
         date("i", $date_paques),
         date("s", $date_paques),
         date("m", $date_paques),
         date("d", $date_paques) + 39,
         date("Y", $date_paques)
         );
         $jour_ascension = date("d", $date_ascension);
         $mois_ascension = date("m", $date_ascension);
         if($jour_ascension == $jour && $mois_ascension == $mois) $nbFerie++;
         //Ascension

         // Calcul de Pentecôte (11 jours après Paques)
        $date_pentecote = mktime(date("H", $date_ascension),
         date("i", $date_ascension),
         date("s", $date_ascension),
         date("m", $date_ascension),
         date("d", $date_ascension) + 11,
         date("Y", $date_ascension)
         );
         $jour_pentecote = date("d", $date_pentecote);
         $mois_pentecote = date("m", $date_pentecote);
         if($jour_pentecote == $jour && $mois_pentecote == $mois) $nbFerie++;
         //Pentecote

         // Calul des samedis et dimanches
         $jour_julien = unixtojd($timestampStart);
         $jour_semaine = jddayofweek($jour_julien, 0);
         if($jour_semaine == 0||$jour_semaine == 6) $nbFerie++;
         //Samedi (6) et dimanche (0)

         // Incrémentation du nombre de jour ( on avance dans la boucle)
         $jour++;
         $timestampStart=mktime(0,0,0,$mois,$jour,$annee);
         $nbJour = ($timestampEnd - $timestampStart / (60*60*24));
         //$nbJourOuvrable = $nbJour - jour_ferie($timestampStart,$timestampEnd);
          ^c'est effectivement inutile ça fais ralentire^
    }
     return $nbFerie;
}//Fin de la fonction
$totcp =  NbJours($date_debutCP, $date_finCP);
$testcp = $totcp - jour_ferie($timestampStart, $timestampEnd) ;
echo $testcp;
?>




SSDS



Cette discussion est classée dans : date, jour, mois, paques, ascension


Répondre à ce message

Sujets en rapport avec ce message

Toujours a la recherche d'aide pour les dates !!! [ par nagrom_om ] Bon je rééxplique mon probleme. Je choisi une date de depart et une date d'arrivée (demande de congés) je dois calculer le nombre de jours ouvrables p Probleme de boucle, calcul jours ouvrés [ par Akita95 ] Bonjour à tous,J'essaye de faire un formulaire de congés qui calcule le nombre de jours ouvrés entre deux dates données en paramètre puis coverties en calendrier annuel, surligné jours en fonction d'une table [ par rouskard ] Bonjour à tous,J'ai un petit problème dans l'élaboration d'un calendrier annuel. J'aimerais pouvoir faire ressortir les jours où une personne a eu un SUJET POUR QUELQU' UN QUI CONNAIT LE PHP AVEC BASE SQL [ par philou4212 ] je remercie la personne qui peut me donner un coup de mains sur le sujet je coince un  peuVoilà j'ai un calendrier qui fonctionne avec une base sql il Gestion des dates et format [ par thaiboxing ] Bonjour, Je suis entrain de découvrir php a l'aide d'un guide php, et la je bloque sur mon code le voici : //Code calendrier date et heure // Problème disabled [ par naroco ] bonjour je créé un formulaire de collecte d'heures. je propose au collecteur la date du jour ou une autre date via un bouton radio. s'il s'agit d'une traduction date [ par kenny18 ] salut,J'ai un champ type "datetime" dans une table. Je vais rechercher cette date dans mon code pour l'afficher. La date = $row[5] ci-dessous. Mon seu Calendrier / Agenda [ par kitgraphic ] Voilà j'ai un calendrier avec des évènement, tout marche bien , mais je voudrais que le jour actuel (la cellule ou il se trouve soit d'une autre coule Afficher les jours de la semaine... [ par stevethx27 ] Bonjour,je tente (en vain) d'afficher sur une ligne les jours de la semaine. J'ai utilisé un script trouvé sur le site que j'ai modifié et ça donne ma Calendrier Location [ par piep14 ] Bonjour le forum, j'aurais une question à vous soumettre car je bloque. J'ai fait un calendrier avec le code que je vous présente ci après. Le trucs,


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,370 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales