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+

3 réponses

  1. Lepu Messages postés 32 Statut Membre 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
  2. 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
    1. Lepu Messages postés 32 Statut Membre 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
  3. SuperMaxou
     
    Merci pour vos bons conseils
    A+
    0