Convertir des secondes en heures HH:MM

Résolu
jerlo11
Messages postés
108
Date d'inscription
mardi 19 mai 2015
Statut
Membre
Dernière intervention
13 février 2022
- 4 sept. 2018 à 15:32
Whismeril
Messages postés
17326
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
- 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

2 réponses

Whismeril
Messages postés
17326
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
596
4 sept. 2018 à 19:05
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")

1
Whismeril
Messages postés
17326
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
596
4 sept. 2018 à 19:06
Bien sûr pour les économes en ligne de codes
TimeSpan.FromSeconds(4321).ToString("hh\:mm")
0
jerlo11
Messages postés
108
Date d'inscription
mardi 19 mai 2015
Statut
Membre
Dernière intervention
13 février 2022

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 !
0
Whismeril
Messages postés
17326
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
596
11 sept. 2018 à 17:34
De rien
0
cs_Le Pivert
Messages postés
7743
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 mai 2022
129
4 sept. 2018 à 15:46
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
0
jerlo11
Messages postés
108
Date d'inscription
mardi 19 mai 2015
Statut
Membre
Dernière intervention
13 février 2022

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.
0
cs_Le Pivert
Messages postés
7743
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 mai 2022
129
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
0