Calcul de durée
Anonyme
Bonjour

Je dois calculer des durées dans un traitement.
L'utilisateur saisie Une date debut et une heure debut ,une date fin et une heure de fin.
Le logiciel doit m'indiquer le Nombre de jour et de demi journée (matin et apres midi)


Voici mes variables

DebutDemiJourneeMatin="09:00"
FinDemiJourneeMatin="12:00"
DebutDemiJourneeApresmidi="12:01"
FinDemiJourneeApresmidi="17:00"


Exemples :

Du 02/02/04 13h00 au 03/02/04 11h00 (1 jour)
Du 02/02/04 09h00 au 03/02/04 08h00 (1 jour)
Du 02/02/04 09h00 au 03/02/04 12h00 (1,5 jour)
Du 02/02/04 09h00 au 03/02/04 12h01 (2 jours)
Du 03/02/04 09h00 au 03/02/04 18h00 (1 jour)
Du 02/02/04 18h00 au 03/02/04 08h00 (0 jour)
Du 03/02/04 08h30 au 03/02/04 12h00 (0.5 jour)

Etc...

Je bloque , par avance merci de vos conseils ou pistes


yann

Contribution le : 03/02/2004 13:47
Créer un fichier PDF de la contribution Imprimer


Re: Calcul de durée
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Salut Question Bête
Du 03/02/04 9h01 au 03/02/04 12h00 ?
du 03/02/04 11h00 ai 03/02/04 13h00 ?
0,5 jour ou 0 jour

Contribution le : 03/02/2004 14:30
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Calcul de durée
Anonyme
Salut,

Rien de plus simple ... Voir l'aide de "DateHeureDifférence".

a+

Christophe

Contribution le : 03/02/2004 14:45
Créer un fichier PDF de la contribution Imprimer


Re: Calcul de durée
Anonyme
Salut,

En fait il y'a un controle de date et d'heures

Cas Ci-dessous impossible :

Du 03/02/04 9h01 au 03/02/04 12h00 ?
du 03/02/04 11h00 ai 03/02/04 13h00 ?

Mais par contre

Du 03/02/04 9h01 au 03/02/04 12h00 ?
du 03/02/04 12h01 ai 03/02/04 13h00 ?

= 1 jour

@+ Yann

Contribution le : 03/02/2004 14:53
Créer un fichier PDF de la contribution Imprimer


Re: Calcul de durée
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Un bout de code pour demarrer
DateHeureDebut est une chaîne
DateHeureFin est une chaîne
DateHeureDiff est une chaîne
nDureeHeure est une Durée
nNbJours est un réel


DateHeureDebut = <AAAAMMJJHHmm>
DateHeureFin = <AAAAMMJJHHmm>

DateHeureDiff = DateHeureDifférence(DateHeureDebut,DateHeureFin)
nDureeHeure = ChaîneVersDurée(DateHeureDiff,duréeCentième)

//Calcul le nombre de jours 
nNbJours = nDureeHeure..Jour

//Calcul Demi journee
SELON Vrai
	CAS DateHeureDebut[[ 9 A ]] >= "0900" AND DateHeureDebut[[9 A ]] <= "1200"
		nNbJours += 0.5
		SI (DateHeureFin[[9 A ]] >= "1201") OU (DateHeureFin[[9 A ]] < "0900") ALORS 
			nNbJours += 0.5
		FIN
	CAS DateHeureDebut[[ 9 A ]] >= "1201" AND DateHeureDebut[[9 A ]] <= "1700"	
		nNbJours += 0.5
		SI DateHeureFin[[9 A ]] >="0900" AND DateHeureFin[[9 A ]] <="1200" ALORS
			nNbJours += 0.5
		FIN
	CAS DateHeureDebut[[9 A ]] <"0900" 
		SI DateHeureFin[[9 A ]] <="1200" ALORS nNbJours +=0.5
		SI DateHeureFin[[9 A ]] >="1201" ALORS nNbJours +=0.5
	CAS DateHeureFin[[9 A ]] >= "1201" 
		nNbJours +=0.5		
FIN

info( nNbJours)


Contribution le : 03/02/2004 16:51
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2