Accueil > Forum > > > > ajouter un délai à une date en tenant compte des heures ouvrées
ajouter un délai à une date en tenant compte des heures ouvrées
mercredi 30 mai 2007 à 13:44:44 |
ajouter un délai à une date en tenant compte des heures ouvrées

red2
|
Bonjour, j'ai un problème avec le calcul d'une date, car je dois ajouter un délai à une date en prenant compte les heures ouvrées. Pour cela j'essaye de faire une fonction qui prendrait comme argument:
Délai => durée en seconde (que je récupère dans une base de données) Date => ça sera la date-heure du jour (getdate() de la base) Variables: pour les heures ouvréesJours de la semaine (du lundi au vendredi)$ho_m_LV = 08:15 => heure d'ouverture le matin du lundi au vendredi $hf_m_LV = 12:00 => heure de fermeture le matin du lundi au vendredi $ho_ap_LV = 13:00 => heure d'ouverture l'apres-midi du lundi au vendredi $hf_ap_LV = 18:00 => heure de fermeture l'apres-midi du lundi au vendredi Samedi :
$ho_m_S = 08:15 => heure d'ouverture le matin le samedi $hf_m_S = 12:30 => heure de fermeture le matin le samedi $ho_ap_S = 13:15 => heure d'ouverture l'apres-midi le samedi $hf_ap_S = 16:30 => heure de fermeture l'apres-midi le samedi Dimanche :FerméEt elle retournerai:Date => date-heure qui sera forcément dans les heure d'ouverture AIDEZ MOI SVP !!! Alors s'il y a des personnes qui peuvent me donner des pistes, ça serait sympa. 
|
|
mercredi 30 mai 2007 à 14:31:01 |
Re : ajouter un délai à une date en tenant compte des heures ouvrées

J_G
|
Salut,
En fin de compte, il faut que tu augmente ton délai de la durée des périodes non-ouvrées, pour trouver sa "vraie" durée.
Je te propose ce genre d'algorithme... certainement pas le meilleur : Note : PNO = "période non-ouvrée"
----------------- $date = // début du délai $delai = // durée du delai, paramêtre donnée à ta fonction
$t = $date; // variable qui va parcourir le temps !
// Heuresement, on sait que $date tombe dans un période ouvrée... do { // on cherche au moins une fois une PNO dans le delai $pno_date = debut_de_la_prochaine_PNO( $t ); // donc calculé par rapport à $t $pno_delai = duree_de_la_prochaine_PNO( $t ); // idem
if ( $pno_date < $date + $debut ) { // cette prochaine PNO tombe dans le delai $delai += $pno_delai; // on ajoute le delai de cette pno
$ok = false; // il va falloir refaire un boucle $t = $pno_date + $pno_delai; // on calcule désormais a partir de la fin de la PNO trouvée continue; // refaire la boucle } } while ( false ) ; ------------------------------
petit conseil, utilise des temps absolus et aditionnable comme des chiffres. Genre le nombre de secondes écoulées depuis le 1er janvier 1970... Soit le résultat de time() ou mktime()
A+
|
|
mercredi 30 mai 2007 à 15:18:11 |
Re : ajouter un délai à une date en tenant compte des heures ouvrées

red2
|
Salut, Merci d'avoir répondu! Ton algorithme est bien mais "$date = // début du délai" ne tombe pas forcément dans une période ouvrée. Alors je rajouterai à ton algorithme un teste pour voir si $date se trouve dans une période ouvrée ou non. Si oui je fais j'applique ton algo sinon je prend comme date de début la première heure ouvrée en aval. 
|
|
mercredi 30 mai 2007 à 15:18:55 |
Re : ajouter un délai à une date en tenant compte des heures ouvrées

red2
|
Salut, Merci d'avoir répondu! Ton algorithme est bien mais "$date = // début du délai" ne tombe pas forcément dans une période ouvrée. Alors je rajouterai à ton algorithme un teste pour voir si $date se trouve dans une période ouvrée ou non. Si oui j'applique ton algo sinon je prend comme date de début la première heure ouvrée en aval. 
|
|
mercredi 30 mai 2007 à 15:18:57 |
Re : ajouter un délai à une date en tenant compte des heures ouvrées

red2
|
Salut, Merci d'avoir répondu! Ton algorithme est bien mais "$date = // début du délai" ne tombe pas forcément dans une période ouvrée. Alors je rajouterai à ton algorithme un teste pour voir si $date se trouve dans une période ouvrée ou non. Si oui j'applique ton algo sinon je prend comme date de début la première heure ouvrée en aval. 
|
|
mercredi 30 mai 2007 à 15:37:58 |
Re : ajouter un délai à une date en tenant compte des heures ouvrées

J_G
|
Oui, c'est bien ça...
|
|
mercredi 30 mai 2007 à 16:15:00 |
Re : ajouter un délai à une date en tenant compte des heures ouvrées

red2
|
if ( $pno_date < $date + $debut ) { // cette prochaine PNO tombe dans le delai Que représente $début ? 
|
|
mercredi 30 mai 2007 à 16:19:04 |
Re : ajouter un délai à une date en tenant compte des heures ouvrées

J_G
|
Salut,
C'est un bourde... $date+$delai
desolé
|
|
mercredi 30 mai 2007 à 16:49:17 |
Re : ajouter un délai à une date en tenant compte des heures ouvrées

red2
|
Excuse moi d'être aussi lourd mais tu t'y prendrais comment pour calculer : debut_de_la_prochaine_PNO( $t ) ? 
|
|
mercredi 30 mai 2007 à 17:18:12 |
Re : ajouter un délai à une date en tenant compte des heures ouvrées

J_G
|
et oui.... c'est bien ça le plus dur dans l'algo (avec l'autre fonction)
Je pense qu'il faut voir tes PNO comme des objets :
class PNO { var $jds // "jour de la semaine" soit :0 pour dimanche, 6 pour samedi var $heure_debut; // entre 0 et 23 var $minute_debut; // entre 0 et 59 var $duree; // en seconde SVP !!!
//puis une fonction qui donne la distance avec un temps en secondes function distance( $t ) { // décomposer $t en ces composante "calendrier" [année, mois, jour, heure, minute, seconde, jds] (cf. strftime() ou date()) // Remplacer dans ces composantes par les valeurs heure et minute de ce PNO
// Ajouter un correctif à jour pour atteindre le "bon" jds (en comparant le jds de $t et de $this)
// Faire l'opération inverse en retransformant ces composantes en temps "secondes" // retourner cette valeur } }
Puis tu fais une liste (array()) de tes PNO, tu compares les distances, prends la plus petite, te souviens de l'index pour la fonction suivante...
Malheuresement pour toi, il reste toujours pas mal de travail à faire
|
|
Cette discussion est classée dans : date, heure, heures, délai, lundi
Répondre à ce message
Sujets en rapport avec ce message
date & heure php [ par eax ]
salutjuste une petite question je voudrais faire une addition de 20 minutes sur un timestamp Y-m-d H:i:s comment faire?merci sylvain
Mysql -- Order by [ par BirD ]
Hello tout le monde, c'est toujours a propos de mon forum, je désir afficher les messsages du plus vieux au plus récent. Dans ma table, j'ai un champ
format de date et time en c+ [ par tertulia ]
comment modifier le format de la date c'est dire remplacer les / par - et de l'heure càd remlacer : par - voilac pour pouvoir creer un fichier avec la
Ecart entre differentes heures [ par must ]
Bonjour,voila ce que je voudrais faire,est ce possiblePersonne viens sur ma page,j'enregistre l'heure de passage,et la lilmite de l'haure est minuit p
Calcul ecart entre 2 heures [ par must ]
Salut,voila ce que je cherche,mais trouve pas,alors si vous pouviez m'aiderJe fix une geure limite,dison:20 heures,30, minutes,20 secondesQuand on vie
Liste des enregistrements d'une table [ par SuNn ]
SuNnBonjourCette boucle while semble infinie et ... à la limite je peux comprendre pourquoi, mais je n'ai pas la solution pour autant. Voila mon code
Date et heure d'un fichier sur un serveur. MySQL [ par bouffard ]
Bonjour,J'utilise une base de données MySQL, avec différent champs (entre autre un champ "datecrea" format datetime).Je suis entrain de construire un
date + heure [ par BeCaSiNe ]
Salut à tous !J'essaye de mettre dans une variable ( $date ) la date + l'heure ( 14-10-2004 21H37 ) Mais je n'y arrive po !!!
inserer des données dans une base access [ par rukiyes ]
bonjour, voilà, j'ai un probleme pour inserer des donnée dans une base access.Et le pire c'est que je ne sais pas d'où vient le probleme, je ne compre
date et heure du serveur et refresh [ par metis15 ]
Bonjour,je n'ai rien trouvé sur le problème d'affichage de Date et Heure qui se met à jour toute les minutes par exemple, mais SANS recharger toute la
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
XML ET PHPXML ET PHP par karouani
Cliquez pour lire la suite par karouani RE : GOOGLE MAPRE : GOOGLE MAP par inwebo
Cliquez pour lire la suite par inwebo
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|