begin process at 2012 05 28 14:20:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

calcul des dates


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

calcul des dates

mardi 20 mai 2008 à 07:16:25 | calcul des dates

nader19

Bonjour,

j'ai problème pour ne pas compter des jours comme par exemple 8 mai ou 1 mai.

en effet ce script parcours table et calcul nombre des jours en une semaine mais j'ai besoin de pas compter des jours feriées

j'ai table table_test ou il ya 1 ligne :


date_debut=2008-05-01
date_fin : 2008-05-29

donc resultat c'est
semaine 17 =3
semaine 18=6
semaine 18=6
.....
bien sur je compte pas dimanche a l'aide de fonction sql (WEEK( Date_debut,2))
mais je dois aussi pas compter jours fériées que je dois paramétré et aussiles integré dans boucle for d'ou par exemple si je dois arriver a afficher semaine 17 =2 au lie de 3 vu que je calcule pas 1 mai.
reste ma table peux contenir 1000 lignes.
voiçi le script ou j'utilise a la finc print_r

<?php
$host = 'localhost';
$user = 'root';
$bdd = 'cm';

mysql_connect($host, $user,'') or die("erreur de connexion au serveur");

mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
$annee = 2008;
// date (mysql type DATE) lundi de cette semaine --> $dateLundi

// date (mysql type DATE) vendredi de cette semaine --> $dateVendredi

// recherche en base des congés chevauchant cette semain
$query = "SELECT "
. "WEEK( Date_debut,2) AS wDebut,DAYOFWEEK( Date_debut ) AS wsDebut,"
. "TO_DAYS( Date_debut) AS dDebut,TO_DAYS( Date_fin ) AS dFin, date_debut, date_fin"
. " FROM tab_test"
. " WHERE YEAR(Date_debut) =" . $annee
. " OR YEAR(Date_fin) =" . $annee ;
//echo '<br>...' . $query;

$result = mysql_query( $query ) or die( mysql_error() );

// réservationtableau pour les nbre de jours par semaine
for( $i=0; $i<53; $i++ )
$nbrJours[ ] = 0;
//$nbrJours1[]=0;
// boucle sur les enregistrements de la table
while( $line = mysql_fetch_array( $result ) )
{
$semaine = $line['wDebut'];

$jourSemaine = $line['wsDebut']; // dimanche = 1

$jourDebut = $line['dDebut'];

$jourFin = $line['dFin'];

$jour1 = $line['date_debut']; // date début congés

$jour2 = $line['date_fin']; // date fin congés

for( $jour = $jourDebut; $jour <= $jourFin; $jour++ )

{

if( $jourSemaine > 1 AND $jourSemaine <= 7 )

$nbrJours[ $semaine]++;

$jourSemaine++;

if( $jourSemaine > 7 )

{

$semaine++; $jourSemaine = 1;

}

}

}

// affichage résultat
echo '<pre>'; print_r( $nbrJours ); echo '</pre>';

?>

merçi d'avance
Configuration: Windows 2000 Internet Explorer 6.0
Répondre à tigre198 [ Lien ] Signaler ce message aux modérateurs [ Lien ] Aller au dernier message   Ajouter à mes alertes (mes interventions)

1


  • Ce message vous semble utile, votez !
  • [ Lien ] Signaler ce message aux modérateurs
Par tigre198, le lundi 19 mai 2008 à 16:57:21 Fil de Discussions  
j'ai fais autre boucle qui parcours les lignes pour trouver jours fériées
mais beug si j'esaie mettre ça dans les autres boucles
la seulement derniere semaine se change de résultat . c'est a dire si j'ai 2 jours feriées
derniere ligne de 4 jours devienne 2

<?php
$host = 'localhost';
$user = 'root';
$bdd = 'cm';

mysql_connect($host, $user,'') or die("erreur de connexion au serveur");

mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
$annee = 2008;
// date (mysql type DATE) lundi de cette semaine --> $dateLundi

// date (mysql type DATE) vendredi de cette semaine --> $dateVendredi

// recherche en base des congés chevauchant cette semain
$query = "SELECT "
. "WEEK( Date_debut,2) AS wDebut,DAYOFWEEK( Date_debut ) AS wsDebut,"
. "TO_DAYS( Date_debut) AS dDebut,TO_DAYS( Date_fin ) AS dFin,date_debut, date_fin"
. " FROM tab_test"
. " WHERE YEAR(Date_debut) =" . $annee
. " OR YEAR(Date_fin) =" . $annee ;
//echo '<br>...' . $query;

$result = mysql_query( $query ) or die( mysql_error() );

// réservationtableau pour les nbre de jours par semaine
for( $i=0; $i<53; $i++ )
$nbrJours[ ] = 0;
// boucle sur les enregistrements de la table
while( $line = mysql_fetch_array( $result ) )
{
$semaine = $line['wDebut'];

$jourSemaine = $line['wsDebut']; // dimanche = 1

$jourDebut = $line['dDebut'];

$jourFin = $line['dFin'];

$jour1 = $line['date_debut'];

$jour2 = $line['date_fin'];

for( $jour = $jourDebut; $jour <= $jourFin; $jour++ )

{

if( $jourSemaine > 1 AND $jourSemaine <= 7 )

$nbrJours[ $semaine+1 ]++;

$jourSemaine++;

if( $jourSemaine > 7 ) {$semaine++; $jourSemaine = 1;}

}
for ($i=$jour1;$i<$jour2;$i++)
{

$individu = array("$i");

foreach($individu as $cle=>$valeur)

{
if ($valeur!='2008-08-01' and $valeur!='2008-08-08' and $valeur!='2008-05-01' and $valeur!='2008-05-08' )
{

echo $valeur;
}
else
{
$nbrJours[ $semaine+1 ]--;
}
}

}
}
// affichage résultat
echo '<pre>'; print_r( $nbrJours ); echo '</pre>';


Cette discussion est classée dans : date, mysql, debut, line, semaine


Répondre à ce message

Sujets en rapport avec ce message

Operations sur dates en MySQL [ par nlh ] Bonjour, bonjour.... j'ai un ptit probleme assez lourd....c'est a dire j'ai une base mysql avec une table factures composée comme ca :id ne pas compter dimanche dans un mois [ par nader19 ] salut je me bloke dans un script et j'espere avoir de l'aide .le script suvant calcul nombre de jour total congés par moais pendant une années . il ch probleme passage entre les annees [ par nader19 ] salut  . je galere depuis logntemps dans un projet et quand j'ai cru ça termine je tombe sur un beugbref mon beug cette fois çi j'ai decovert c'est pa scroll tableau php [ par rudybiss ] Bonjour à tous!!!Voila je devéloppe un site et je dois gerer des évenements.Alors j'ai un table qui contient tous les évenements liées à des dates et extraction date [ par papiona ] Bjrje veux extraire la date d'inscription apartir de ma table pour détirminer le jour,mois et l'année de cette date,voila mon codemais ca marche pas$s Affichage [ par thewind0007 ] Bonjour,Je suis en manque d'idée. J'ai trouvé un script qui permet d'afficher mes semaines sur les 52 mais je cherche à afficher par exemple : 15- Probleme de requete MySQL [ par TropNul ] Bonjour,Quelqu'un(e) pourrait-il(elle) m'aider avec cette requete MySQL s'il-vous-plait ?Merci d'avance.$sql = "INSERT INTO cat_data (categ_id, subcat insérer contenu xml dans bdd mysql [ par indutec ] Bonjour à tous, Voilà, j'aimerais encoder le contenu d'un fichier xml, que je ne génère pas, vers une base de données mysql. Pour l'instant, il m'enc insérer contenu xml dans bdd mysql [ par indutec ] Bonjour, Je souhaite insérer le contenu d'un fichier xml externe dans une base de données sur mon serveur. Pour l'instant, il me génère une erreur recherche et affichage du résultat [ par just me ] Bonjour, je suis entrain de développer une application web et je suis coincé sur la partie du moteur de recherche, en gros: je me connecte a une BDD M


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,900 sec (3)

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