# Logiciels > Solutions d'entreprise > Business Intelligence > SAP Crystal Reports >  calcul dlais entre deux dates avec plages horaires

## leila eco

Bonjour,

j'ai russi  calculer avec la fonction Datediff mon dlais entre deux dates. Mais je dois galement indiquer que ce dlais doit etre entre deux plages horaires.

C'est  dire : 
une date de dbut 21:12:06 16:15:17
une date de fin 23:12:06  19:15:06

En sachant que mon calcul de dlais n'est pas pris en compte sur la plage horaire 19:00:00  - 07:00:00

Merci par avance de votre aide

----------


## Antoun

> Bonjour,
> 
> j'ai russi  calculer avec la fonction Datediff mon dlais entre deux dates. Mais je dois galement indiquer que ce dlais doit etre entre deux plages horaires.


quelle est ta rgle de calcul ? c'est le dlai entre la fin de la premire plage et le dbut de la seconde ?

si c'est bien a, tu fais ton datediff entre *Ubound(plage1) et Lbound(plage2) ( moins que ce ne soit Max et Min, mais il me semble que ceux-ci sont pour les tableaux)*




> En sachant que mon calcul de dlais n'est pas pris en compte sur la plage horaire 19:00:00  - 07:00:00


a se complique  :;):  

Je te suggre de crer une fonction spciale, du genre TimeDiff9h_19h(Debut, Fin), dont l'algo serait celui-l :

- Debut et Fin sont transforms selon les rgles suivantes : s'il est avant 9h, il est ramen  9h le mme jour ; s'il est aprs 19h, il est ramen  19h le mme jour.

- Si Debut et Fin sont le mme jour, Timediff suffit

- Sinon, on fait un Timediff et on te 12h par jour de diffrence.

Dans ton exemple, cela ferait donc un Timediff entre 
21/12/06 16:15:17 et 23:12:06 19:00:00, soit 50:44:43, moins 2 * 12h, rsultat total 26:44:43.

----------


## leila eco

bah le soucis c'est que timediff n'existe pas comme fonction dans chrystal.

----------


## Aitone

> bah le soucis c'est que timediff n'existe pas comme fonction dans chrystal.


mais la bonne nouvelle, c'est qu'il existe Datediff... Si tu te souviens : 




> yyyy=anne
> m=mois
> y=jour de l'anne
> d=jour
> 
> h=heure
> n=minute
> s=seconde


tu peux donc utiliser Datediff pour tes heures . . .

----------

