[R] Recherche formule de calcule
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
ethneldryt
- Status : Hors ligne
[R] Recherche formule de calcule
Bonjour, ce que je demande n'est pas vraiment un script, je cherche plutot une formule de calcule, pour calculer combien il y a d'heure et de minute entre deux heures de la journée.
Voici un exemple : de 12h25 a 17h00
$heure_1 = 12
$minute_1 = 25
$heure_2 = 17
$minute_2 = 00
Cela donnerai : 4h35
$heure_total = 4
$minute_total = 35
Merci de votre aide
Voici un exemple : de 12h25 a 17h00
$heure_1 = 12
$minute_1 = 25
$heure_2 = 17
$minute_2 = 00
Cela donnerai : 4h35
$heure_total = 4
$minute_total = 35
Merci de votre aide
Modifié en dernier par ethneldryt le dim. 03 avr. 2011 18:40, modifié 1 fois.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Recherche formule de calcule
Votre avatar n'est pas des plus reposant pour les yeux !!!
En ce qui concerne la formule, je dirait que cela reste quelque chose de basique, car généralement dans tout calcul horaire, on convertit l'entrée dans la plus petite unité utilisée.
En l’occurrence, vous utilisez des heures et des minutes, donc convertissez vos heures en minutes, puis additionnez le tout. Ensuite vous vous retrouverez avec deux nombres qu'il vous suffit de soustraire puis de convertir le résultat en heures/minutes.
Sinon, autre solution : _DateDiff()
En ce qui concerne la formule, je dirait que cela reste quelque chose de basique, car généralement dans tout calcul horaire, on convertit l'entrée dans la plus petite unité utilisée.
En l’occurrence, vous utilisez des heures et des minutes, donc convertissez vos heures en minutes, puis additionnez le tout. Ensuite vous vous retrouverez avec deux nombres qu'il vous suffit de soustraire puis de convertir le résultat en heures/minutes.
Sinon, autre solution : _DateDiff()
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
ethneldryt
- Status : Hors ligne
Re: [..] Recherche formule de calcule
Merci et voila, avatar supprimer ^^
donc si je fais _DateDiff("n","1970/01/01 12:00:00","1970/01/01 15:20:00")
ca me retourne bien 200
Ce que je n'arrive pas a faire est de séparer les heures et les minutes en 2 var.
$heure = 3
$minute = 20
J'avais essayer de faire un petit code mais il ne fonctionne pas exactement.
donc si je fais _DateDiff("n","1970/01/01 12:00:00","1970/01/01 15:20:00")
ca me retourne bien 200
Ce que je n'arrive pas a faire est de séparer les heures et les minutes en 2 var.
$heure = 3
$minute = 20
J'avais essayer de faire un petit code mais il ne fonctionne pas exactement.
Code : Tout sélectionner
$heure = $h2 - $h1_lundi
If $m1 < $m2 Then
$minute = $m2 - $m1
Else
$minute = $m1 - $m2
EndIf
Modifié en dernier par ethneldryt le dim. 03 avr. 2011 18:35, modifié 1 fois.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Recherche formule de calcule
Pourtant, il est bien connu qu'il y a 60 minutes dans une heure !!!
Enfin bon, on ne peut pas être bon dans tout ce que l'on fait ...
Si il y a besoin d'explications, merci de me le dire.
Enfin bon, on ne peut pas être bon dans tout ce que l'on fait ...
Code : Tout sélectionner
$Time = 200
$Hour = Int($Time/60)
$Min = $Time - ($Hour*60)
MsgBox(0, '', $Hour & " heure(s) et " & $Min & " minute(s)")Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- Strofe
- Niveau 5

- Messages : 182
- Enregistré le : ven. 26 sept. 2008 23:16
- Localisation : Picardie, Oise, Beauvais
- Status : Hors ligne
Re: [..] Recherche formule de calcule
Bonsoir
grrrrr il est rapide..
#include <Date.au3>
$delta = _DateDiff("n","1970/01/01 12:00:00","1970/01/01 15:20:00")
ConsoleWrite($delta & @CRLF & floor($delta/60) & " heure(s) et " & mod($delta,60) & " minute(s)")
A+
grrrrr il est rapide..
#include <Date.au3>
$delta = _DateDiff("n","1970/01/01 12:00:00","1970/01/01 15:20:00")
ConsoleWrite($delta & @CRLF & floor($delta/60) & " heure(s) et " & mod($delta,60) & " minute(s)")
A+
Y a pas de problème, y a que des solutions. Reste à les trouver.
-
ethneldryt
- Status : Hors ligne
Re: [..] Recherche formule de calcule
Merci a vous, c'est ce que je chercher 
Re: [R] Recherche formule de calcule
Bonjour,
je cherche à faire similaire mais avec les années, mois,jours.
je dois pouvoir encoder deux dates ex 05/04/2011 et 06/06/2012
et avoir comme résultat : 1 ans (du 05/04/2011 au 04/04/2012), 2 mois (05/04/12 au 04/06/2012), 2 jours (05/06/2012 au 06/06/2012). Le tout doit être convertis en mois soit (ans * 12 + mois + 1 (si jours différent de 0)) car tout mois commencé doit être compté.
Pour le moment j'ai trouvé ceci qui me retourne le nombre de mois entre deux dates
mais ca compte 11 au lieu de 12 entre le 01/01/2011 et 31/12/2011...
qqn aurait-il une idée pour modifier ce code ?
Merci,
Nemo
je cherche à faire similaire mais avec les années, mois,jours.
je dois pouvoir encoder deux dates ex 05/04/2011 et 06/06/2012
et avoir comme résultat : 1 ans (du 05/04/2011 au 04/04/2012), 2 mois (05/04/12 au 04/06/2012), 2 jours (05/06/2012 au 06/06/2012). Le tout doit être convertis en mois soit (ans * 12 + mois + 1 (si jours différent de 0)) car tout mois commencé doit être compté.
Pour le moment j'ai trouvé ceci qui me retourne le nombre de mois entre deux dates
Code : Tout sélectionner
$CD1 = StringSplit(GUICtrlRead($DteDeb), "/")
$CD2 = StringSplit(GUICtrlRead($DteFin), "/")
$iDateCalc = _DateDiff( 'M',$CD1[3] & "/" & $CD1[2] & "/" &$CD1[1], $CD2[3] & "/" & $CD2[2] & "/" &$CD2[1])
GUICtrlSetData($Duree, $iDateCalc & " Mois")
qqn aurait-il une idée pour modifier ce code ?
Merci,
Nemo
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Recherche formule de calcule
Il y a des possibilités, mais selon certains cas, il risque d'y avoir des problèmes.
Par exemple, comment calculeriez-vous l'écart entre le 06/06/2011 et le 05/04/2012 ?
Pour les écarts d'année et de mois, _DateDiff fait très bien l'affaire, le problème est plutôt sur le nombre de jour. Tout dépend, comment vous voulez calculer ce nombre de jour.
Par exemple, comment calculeriez-vous l'écart entre le 06/06/2011 et le 05/04/2012 ?
Pour les écarts d'année et de mois, _DateDiff fait très bien l'affaire, le problème est plutôt sur le nombre de jour. Tout dépend, comment vous voulez calculer ce nombre de jour.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [R] Recherche formule de calcule
Bonjour,
Merci pour la réponse.
c'est pour un calcul de durée de contrat : je considère le début au matin du 06/06/2011 et la fin au soir du 05/04/2012
soit le 1er mois commence le 06/06/2011 au matin et se termine le 05/07/2011 au soir
donc ca doit faire 10 mois pour la période que tu proposes :
1 > 06/06/2011 au 05/07/2011
2 > 06/07/2011 au 05/08/2011
3 > 06/08/2011 au 05/09/2011
4 > 06/09/2011 au 05/10/2011
5 > 06/10/2011 au 05/11/2011
6 > 06/11/2011 au 05/12/2011
7 > 06/12/2011 au 05/01/2012
8 > 06/01/2012 au 05/02/2012
9 > 06/02/2012 au 05/03/2012
10 > 06/03/2012 au 05/04/2012
par contre si la fin était le 06/04/2012 ca devrait faire 11 car le 06 au matin commence le 11e mois
et si ca se termine le 04/04/2012 ca doit aussi faire 10 car le 10e mois commence le 06
bàv
Nemo
Merci pour la réponse.
c'est pour un calcul de durée de contrat : je considère le début au matin du 06/06/2011 et la fin au soir du 05/04/2012
soit le 1er mois commence le 06/06/2011 au matin et se termine le 05/07/2011 au soir
donc ca doit faire 10 mois pour la période que tu proposes :
1 > 06/06/2011 au 05/07/2011
2 > 06/07/2011 au 05/08/2011
3 > 06/08/2011 au 05/09/2011
4 > 06/09/2011 au 05/10/2011
5 > 06/10/2011 au 05/11/2011
6 > 06/11/2011 au 05/12/2011
7 > 06/12/2011 au 05/01/2012
8 > 06/01/2012 au 05/02/2012
9 > 06/02/2012 au 05/03/2012
10 > 06/03/2012 au 05/04/2012
par contre si la fin était le 06/04/2012 ca devrait faire 11 car le 06 au matin commence le 11e mois
et si ca se termine le 04/04/2012 ca doit aussi faire 10 car le 10e mois commence le 06
bàv
Nemo
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Recherche formule de calcule
Aux vues de vos considérations de début et de fin, ceci devrait répondre à votre question sur le calcul de mois :
Code : Tout sélectionner
#include <Date.au3>
$CD1 = StringSplit("06/06/2011", "/")
$CD2 = StringSplit("05/04/2012", "/")
$iDateCalc = _DateDiff( 'M',$CD1[3] & "/" & $CD1[2] & "/" &$CD1[1], $CD2[3] & "/" & $CD2[2] & "/" &$CD2[1] + 1)
MsgBox(64, 'Mois', "L'écart est de " & $iDateCalc & " Mois" & @TAB)Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".

