Convertir l'heure 12:23:21 en minute

Résolu
Signaler
Messages postés
4
Date d'inscription
vendredi 9 juin 2006
Statut
Membre
Dernière intervention
11 juin 2006
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
mary_1984

8 réponses

Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
M = Minute + (Heure*60) + ((1/60)*Secondes);
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
???????????????????????
Si c'est volontaire: Tu pourrais lire le réglement et prendre au moins le temps de rédiger un semblant de message.

Si c'est une mauvaise manip: ne tiens pas compte de ce que je viens de dire..

Voila ce que tu cherches.

Private Sub Form_Load() 
Call MsgBox(DateDiff("n", "00:00:00", "12:23:21")) 
End Sub 
 

<small> Coloration syntaxique automatique [AFCK]</small>
       

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
10
1/60=0
Mieux vaut faire Secondes/60

En tous cas convertir l'heure 12:23:21 en minute me semble une bonne idée d'amélioration du site :)
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonsoir à tous....

Julien, ce n'est pas une fausse manip de "796450 mary_tssi".

Vers 16h45/17h00, j'ai posté une réponse en vbs à cette question,
et elle n'apparait pas.
Comme tout le monde (forum) sait, le site de Nix et compères (ce n'est pas péjoratif)
 est en ré-réorganisation.......

Ce qui explique surement  (ou peut-être) que ce post se retrouve dans la catégorie:
Thèmes / CodeS-SourceS / A propos des sites CodeS-SourceS / Boîte à idée pour améliorer le site

Coté question de "=796450 mary_tssi", j'utilise, moi-aussi DateDiff pour comparer x dates.
Je n'avais jamais eu à utliser la simple commande (qui répond à la validation de cette question
 selon le VB utilisé, puisque le language n'est pas précisé) :

MsgBox(DateDiff("n", "12:20:21", "12:23:21"))    ' renvoie  3'.

et
MsgBox(DateDiff("n", "12:20:45", "12:23:21"))  'renvoie 3' aussi .

Bonne soirée de prog.

jean-marc

Ci-dessous, exemple que j'avais proposé (et donc à adapter)
Dim Saisie, DateEntree, DateSortie, Msg, n, hh, mn



Saisie = InputBox(vbCrLf&vbCrLf&vbCrLf&vbCrLf&"Saisir votre date sous la forme:"_
&vbCrLf&vbCrLf&"jj/mm/aaaa hh:mm - jj/mm/aaaa hh:mm"&vbCrLf&"Remplacer les 5 derniers caractères hh:mm",_
"Calcul d'intervalle de temps en minutes", Left(Now, 16) & " - " & Left(Now, 10) & " 00:15")



DateEntree = Mid(Saisie, 1, 16) & ":00"
DateSortie = Mid(Saisie, 20, 16) & ":00"



' y = DateDiff("yyyy", DateSortie, DateEntree) ' aaaa
' m = DateDiff("m", DateSortie, DateEntree)    ' mm
' d  = DateDiff("y", DateSortie, DateEntree)   ' jj
' h = DateDiff("h", DateSortie, DateEntree)    ' hh
' n = DateDiff("n", DateSortie, DateEntree)    ' mn    
' s = DateDiff("s", DateSortie, DateEntree)    ' ss



n = DateDiff("n" , DateSortie, DateEntree)



Temps = n * 60  'temps en secondes



hh = Temps / 3600
mn = (hh - Int(hh)) * 60



If hh >= 24 Then
jj = Int(hh / 24)
hh = hh - jj * 24
End If



Conversion = Int(jj) & " j " & Int(hh) & " h " & CInt(mn) & " mn"
Msg = "Comparaison de dates du " & DateSortie & " au " & DateEntree &vbCrLf&vbCrLf
Msg = Msg & "La différence entre les 2 dates est : " &vbCrLf&vbCrLMsg Msg & "Nombre total en minutes " & n &vbCrLf&vbCrLf
MsgBox s & " " & Msg &vbCrLf& " soit: " & Conversion,_
       vbApplicationModal + vbDefaultButton1 + vbInformation + vbOKOnly, "Résultat"



If n =0 Then
   MsgBox "Les dates à comparer sont identhiques"
   InputBox Saisie , "Calcul d'intervalle de temps en minutes", Left(Now, 16) &" - " & Left(Now, 11) & " 00:00"', Left(Now, 16) & " - " & Left(Now, 10) & " 00:00", "Calcul d'intervalle de temps en minutes", Left(Now, 16) & " - " & Left(Now, 11) & " 00:00"
   Else
   Msg = "Comparaison de dates du " & DateSortie & " au " & DateEntree &vbCrLf&vbCrLf
   Msg = Msg & "La différence entre les 2 dates est : " &vbCrLf&vbCrLf   Msg Msg & "Nombre total en minutes " & n &vbCrLf&vbCrLf   Msg Msg & "Nombre de jours   " & Int(jj)&vbCrLf&vbCrLf    Msg Msg & "Nombre de heures  " & Int(hh)&vbCrLf&vbCrLf    Msg Msg & "Nombre de minutes " & CInt(mn)
MsgBox Msg '& "La différence entre les 2 dates est : " &vbCrLf&vbCrLf& Msg  
End If
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
@ vecchio56 : 1/60 = 0,016666666666666666666666666666667 pas 0 !

mais tu as raison S/60 est plus simple ... j'ecris en meme temps que je pense d'ou le (1/60)*S

ce qui donne pour 12:31:21 :

(12*60) + 31 + (21/60) = 751.35 minutes

et pour les autres, la question est "convertir en minutes" pas "obtenir la difference entre deux date" ...

de toute façon vus le peu de details fournis dans la question, on se casse bien le cul pour rien.
je m'etonne meme que l'on repondent.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
10
C'est sans doute parce qu'on parle pas la même langue: en C/C++, 1/60 vaudra bien 0. C'est un piège bien connu dans lequel tombent beaucoup de débutants
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
ah c'est sur que si tu fait :

int C;
C = 1/60;

ça reviens a ecrire en delphi :

var C : integer;
begin
   C := 1 div 60;
end;

forcement dans les deux cas, C vaut 0.

mais si on fait :

float C;
C = 1/60;

me dis pas que ça renvois 0 ...

vus que si j'ecris ça en delphi :

var C : extended;
begin
   C := 1/60;
end;

j'obtient bien 0.01666666666666667

de toute façon, je vois pas ce que ce message fait dans cette section ... soit on parle de Codes-sources et donc il ne s'agit plus de C ou C++ ou encore Delphi ect...
soit on parle dans un certain langage et on poste dans le site adequate.

-100 a mary pour avoir poster n'importe comment, n'importe ou ...

faudrait penser a supprimer l'option RandomPost du site.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
10
En C, on aura bien 0 si on écrit ca:
float C;
C = 1/60;

car en fait, c'est interprété comme
C = (float)(1 / 60); et 1/60 vaut 0

Il faut en fait écrire C = 1./60