Convertir des secondes en heures HH:MM [Résolu]

jerlo11 87 Messages postés mardi 19 mai 2015Date d'inscription 13 septembre 2018 Dernière intervention - 4 sept. 2018 à 15:32 - Dernière réponse : Whismeril 12032 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 septembre 2018 Dernière intervention
- 11 sept. 2018 à 17:34
Bonjour à tous et toutes,

Je recherche une solution pour convertir un label qui contient un chiffre en seconde pour le passé au format hh:mm

En cherchant j'ai trouvé des choses intéressantes du côté du TimeSpan mais je n'arrive pas utiliser la structure, auriez-vous une idée ?

Merci par avance
Afficher la suite 

Votre réponse

7 réponses

cs_Le Pivert 5362 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 24 septembre 2018 Dernière intervention - 4 sept. 2018 à 15:46
0
Merci
Bonjour,

Il y a des quantités de réponses sur le net. En voici une parmi tant d'autres:

https://codes-sources.commentcamarche.net/source/929-conversion-d-un-temps-en-secondes-au-format-hh-mm-ss
jerlo11 87 Messages postés mardi 19 mai 2015Date d'inscription 13 septembre 2018 Dernière intervention - 4 sept. 2018 à 16:24
J'ai testé cet exemple mais sans succès

Public Class Form1
Dim TempsTotal As Long 'TempsTotal est le temps en secondes
Dim Heures As Integer
Dim Minutes As Integer
Dim Secondes As Integer

Sub Conversion(TempsTotal)
TempsTotal = Txt_seconde.Text
Heures = Int(TempsTotal / 3600)
Minutes = Int((TempsTotal - 3600 * Heures) / 60)
Secondes = TempsTotal - 3600 * Heures - 60 * Minutes

Label1.Text = Format(Str(Heures + ":" + Minutes + ":" + Secondes))

End Sub


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Conversion(TempsTotal)

End Sub
End Class



Une exception non gérée du type 'System.InvalidCastException' s'est produite dans Microsoft.VisualBasic.dll

Informations supplémentaires : La conversion de la chaîne ":" en type 'Double' n'est pas valide.
cs_Le Pivert 5362 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 24 septembre 2018 Dernière intervention - 4 sept. 2018 à 16:40
comme ceci:

Option Strict On
Public Class Form1
    Dim Temps As Long 'TempsTotal est le temps en secondes
    Dim Heures As Integer
    Dim Minutes As Integer
    Dim Secondes As Integer
    Sub Conversion(ByVal TempsTotal As Long)
        Heures = CInt(Int(TempsTotal / 3600))
        Minutes = CInt(Int((TempsTotal - 3600 * Heures) / 60))
        Secondes = CInt(TempsTotal - 3600 * Heures - 60 * Minutes)
        Label1.Text = (Format(Heures & ":" & Minutes & ":" & Secondes)) 'là, on a le temps formaté hh:mm:ss
        'Format sert à afficher 2 chiffres pour les heures, les minutes et les secondes
        'Exemple: avec Format: 08:05:23
        '         sans Format: 8:5:23
    End Sub
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Temps = 12500
        Conversion(Temps)
    End Sub
End Class


voilà

@+ Le Pivert
Commenter la réponse de cs_Le Pivert
Whismeril 12032 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 septembre 2018 Dernière intervention - 4 sept. 2018 à 19:05
0
Merci
Bonjour

ou alors utiliser les outils de la framework
        Dim secondes As Integer = 4321
        Dim temps As TimeSpan = TimeSpan.FromSeconds(secondes)
        Dim hhmmss As String = temps.ToString()
        Dim hhmm As String = temps.ToString("hh\:mm")

Whismeril 12032 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 septembre 2018 Dernière intervention - 4 sept. 2018 à 19:06
Bien sûr pour les économes en ligne de codes
TimeSpan.FromSeconds(4321).ToString("hh\:mm")
jerlo11 87 Messages postés mardi 19 mai 2015Date d'inscription 13 septembre 2018 Dernière intervention - 11 sept. 2018 à 13:56
Merci pour vos retours, je privilégie effectivement la solution TimeSpan qui me plait bien et effectivement plus court ;)

Top !
Whismeril 12032 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 septembre 2018 Dernière intervention - 11 sept. 2018 à 17:34
De rien
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.