Convertir nbre en temps(h:mn:s) en vb

SuperMaxou -  
 SuperMaxou -
Salut tout le monde

j'ai un petit prob , il se trouve que j'ai un nombre en secondes par exemple ( 4000) et je voudrais savoir si y a une fonction qui le converti au format hh:mn:s

merci
A+
A voir également:

3 réponses

Lepu Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   1
 
Il me semble que non, mais de toute façon, la fonction est assez triviale.
De tête je t'en fais une ici :
Function GetTime(ByVal intSeconds As Integer) As String
   Dim strTime As String 
   Dim intH As Integer
   Dim intM As Integer
   Dim intS As Integer
   Dim intReste As Integer    

    'Obtenir les heures
    intH =  intSeconds \ 3600
    intReste = intSeconds Mod 3600

    'Obtenir les minutes
    intM = intReste \ 60
    intReste = intReste Mod 60

   'Obtenir les secondes
    intS = intReste

   'Construire la chaîne d'affichage
    strTime = intH & "h" & intM & "m" & intS & "s"

   GetTime = strTime
End Function


REMARQUES :
Fait gaffe au sens de '\' . C'est une division entière, ça retourne la partie entière de la division

Et modulo (Mod) retourne le reste de la division.

Voilà.
1
Sly
 
Salut !

Moi aussi j'ai eu besoin d'une fonction pour transformer un nombre en temps, mais comme il n'en existe pas de toute faite, j'ai écrit une fonction moi-même. elle marche bien mais seulement si ton nombre est inférieur a 2 h soit 7200.

private sub transformer( nombre as integer) : string

dim h,m,s as integer

if nombre<60 then
chaine="0 : 0 : " & nombre
else
if nombre<3600 then
m=int(nombre/60)
s= nombre-(60*m)
chaine="0 : " & m & ":" & s
else
h=1
m=int((nombre/60)-60)
s =nombre-(60*int(nombre/60))
chaine= h & ":" & m & ":" & s
end if
end if

return (chaine)

end sub
0
Lepu Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   1
 
Quelques conseils relatifs à ton post :
1. Les Sub en VB ne retournent pas de valeur
Si tu as une procédure qui doit retourner une valeur ça doit obligatoirement être une fonction

2. La signature de la valeur du type de retour de la fonction est le même que pour le typage des variables : le mot clé 'As'
La signature de ta fonction doit dont être :
Private Function Transformer(Nombre As Integer) As String
End Function


3. Enfin, en VB les passages de paramètres étant fait par défaut par référence, il est préférable, de préciser que ta fonction n'a pas l'intention de modifier la valeur du paramètre en déclarant que le passage du paramètre se fait par valeur :
Function Transformer(ByVal Number As Integer) As String
End Function


Voili, voilou.
0
SuperMaxou
 
Merci pour vos bons conseils
A+
0