# [JAVA] Algorithme jours ouvrés



## dmo95 (5 Juin 2009)

Bonjour à tous,

Voilà je suis en train de développer un petit programme, celui ci doit être en mesure de calculer des périodes par rapport à deux dates. Seulement voilà cela ce passe bien pour le calcul en temps complet, mais pour le calcul en jours ouvrés, cela est bien plus complexe ! J'utilise bien entendu des instances de java.util.Calendar déjà très complète, malgré tout j'ai beaucoup de problèmes car mes jours ouvrés sont de 8:00 à 18:00 du lundi au vendredi...

J'ai cherché des API pour manipuler les dates, mise à part Joda Time qui ne m'a pas sembler me rendre beaucoup service, j'ai rien trouvé d'autre.

J'arrive à avoir un semblant de jours ouvrés mais le résultat n'est pas concluant dans certains cas, car en effet des cas il y a énormément à prendre en compte !!!

Une idée ? Je le redis j'ai déjà bien scruter le net, et pas un problème ne correspondait au mien donc inutile de me balancer des liens 

​


----------



## tatouille (9 Juin 2009)

dmo95 a dit:


> Bonjour à tous,
> 
> Voilà je suis en train de développer un petit programme, celui ci doit être en mesure de calculer des périodes par rapport à deux dates. Seulement voilà cela ce passe bien pour le calcul en temps complet, mais pour le calcul en jours ouvrés, cela est bien plus complexe ! J'utilise bien entendu des instances de java.util.Calendar déjà très complète, malgré tout j'ai beaucoup de problèmes car mes jours ouvrés sont de 8:00 à 18:00 du lundi au vendredi...
> 
> ...



tu as juste besoin de ca (dateInXDays) pour faire tes jours ouvres, apres tu testes demain apres demain ... ecetera ... ca marche aussi avec -30, par exemple pour savoir si ca existe deja rien de complique, dans ton cas il faut que tu es 2 jours ouvres consecutifs pour par exemple faire un envoie postale en locale, + si c'est multi fuseaux timezone, + les jours sont quelques de relatif a une entreprise a un pays ecetera c'est a toi de definir un jour non-ouvert a l'activite 


```
function dateInXDays($xdays,$from1Date='')
    {
        if($from1Date=='')
        {
            $myDate=explode('-',date('Y-m-d'));
                    
        }else{
        
            $myDate=explode('-',$from1Date);
        }
        
        $this->Month=$myDate[1];
        $this->Year=$myDate[0];
        $this->Day=$myDate[2];
        
        $this->dateTime=getdate(mktime(0,0,0,$this->Month,$this->Day+$xdays,$this->Year));
    }
```


----------

