begin process at 2012 02 12 11:21:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date & Heure

 > CONVERTIR DES SECONDES EN MINUTES, HEURES, JOURS

CONVERTIR DES SECONDES EN MINUTES, HEURES, JOURS


 Information sur la source

Note :
6,33 / 10 - par 3 personnes
6,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date & Heure Classé sous :convertir, seconde, minute, heure, jour Niveau :Débutant Date de création :26/01/2006 Vu :98 871

Auteur : PaTaTe

Ecrire un message privé
Site perso
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Comme le titre l'indique, cette fonction permet de convertir des secondes en minutes, heures et jours !

Rien de bien compliqué donc.

Source

  • Public Function ConvertirSecondes(Valeur As Double) As String
  • On Error GoTo Erreur
  • Dim Jours, Heures, Minutes, Secondes As Double
  • Dim JoursRestants, HeuresRestantes, MinutesRestantes, SecondesRestantes As String
  • Dim Resultat As String
  • If Valeur >= 86400 Then
  • Jours = Int(Valeur / 86400)
  • JoursRestants = Format(Jours) & " Jour(s)"
  • Else
  • Jours = 0
  • End If
  • Valeur = Valeur - (Jours * 86400)
  • If Valeur >= 3600 Then
  • Heures = Int(Valeur / 3600)
  • HeuresRestantes = Format(Heures) & " Heure(s)"
  • Else
  • Heures = 0
  • End If
  • Valeur = Valeur - (Heures * 3600)
  • If Valeur >= 60 Then
  • Minutes = Int(Valeur / 60)
  • MinutesRestantes = Format(Minutes) & " Minute(s)"
  • Else
  • Minutes = 0
  • End If
  • Valeur = Valeur - (Minutes * 60)
  • If Valeur > 0 Then
  • Secondes = Valeur
  • SecondesRestantes = Format(Secondes) & " Seconde(s)"
  • Else
  • Secondes = 0
  • End If
  • Resultat = JoursRestants & " " & HeuresRestantes & " " & MinutesRestantes & " " & SecondesRestantes
  • If Len(Resultat) = 0 Then ConvertirSecondes = "0 Seconde(s)" Else ConvertirSecondes = Resultat
  • Exit Function
  • Erreur:
  • MsgBox "Erreur N° " & Err.Number & vbNewLine & "Description : " & Err.Description, vbCritical, App.Title
  • Err.Clear
  • End Function
Public Function ConvertirSecondes(Valeur As Double) As String
On Error GoTo Erreur

Dim Jours, Heures, Minutes, Secondes As Double
Dim JoursRestants, HeuresRestantes, MinutesRestantes, SecondesRestantes As String
Dim Resultat As String

If Valeur >= 86400 Then
    Jours = Int(Valeur / 86400)
    JoursRestants = Format(Jours) & " Jour(s)"
    Else
    Jours = 0
End If

Valeur = Valeur - (Jours * 86400)

If Valeur >= 3600 Then
    Heures = Int(Valeur / 3600)
    HeuresRestantes = Format(Heures) & " Heure(s)"
    Else
    Heures = 0
End If

Valeur = Valeur - (Heures * 3600)

If Valeur >= 60 Then
    Minutes = Int(Valeur / 60)
    MinutesRestantes = Format(Minutes) & " Minute(s)"
    Else
    Minutes = 0
End If

Valeur = Valeur - (Minutes * 60)

If Valeur > 0 Then
    Secondes = Valeur
    SecondesRestantes = Format(Secondes) & " Seconde(s)"
    Else
    Secondes = 0
End If

Resultat = JoursRestants & " " & HeuresRestantes & " " & MinutesRestantes & " " & SecondesRestantes

If Len(Resultat) = 0 Then ConvertirSecondes = "0 Seconde(s)" Else ConvertirSecondes = Resultat

Exit Function

Erreur:
MsgBox "Erreur N° " & Err.Number & vbNewLine & "Description : " & Err.Description, vbCritical, App.Title
Err.Clear
End Function

 Conclusion

La fonction n'est pas commentée mais sa comprehenssion est, je pense, simple même pour un débutant.

A vos commentaires (et vos votes lol)


 Sources du même auteur

Source avec Zip EXÉCUTER UN PROGRAMME (OU UN FICHIER VIA SON PROGRAMME ASSOC...
Source avec Zip Source avec une capture LISTER ET EXTRAIRE UN FICHIER 7Z (FORMAT 7-ZIP)
Source avec Zip FORMAT DE COMPRESSION 7-ZIP (7Z) DANS UNE APPLICATION VB
Source avec Zip Source avec une capture UTILISER LES SKINS WINAMP EN VISUAL BASIC (VB6)

 Sources de la même categorie

Source avec Zip Source avec une capture LES FONCTIONS DATE PAR L'EXEMPLE. par pasquet78
Source avec Zip Source avec une capture CALENDRIER, MODE D'EMPLOI par pasquet78
Source avec Zip Source avec une capture Source .NET (Dotnet) HORLOGE DIODE AVEC 3 ALARMES ET REMISE À L'HEURE par EhJoe
Source avec Zip Source avec une capture POINTEUSE HORAIRES PAR SEMAINE par VBNoob13
Source avec Zip Source avec une capture HORLOGE À AIGUILLES SIMPLEMENT DANS UN USERFORM EXCEL par bigbe

 Sources en rapport avec celle ci

Source .NET (Dotnet) CONVERTION DE L'HEURE DU TOPIC MIRC EN DATE ET HEURE par yohan49
Source avec Zip TEMPS DE WINDOWS EN HEURES, MINUTES ET SECONDES par vb6fr.dll
Source avec Zip CONVERTIR (EN FRACTION) LES HEURES, LES MINUTES ET LES SECON... par koubihack
Source avec Zip METTRE DES SECONDES EN HEURES (4 LIGNES) par TomAmplius
EXTRACTION D'INFORMATION SUR UNE HEURE HH:MM:SS par blq

Commentaires et avis

Commentaire de yvesyves le 26/01/2006 08:10:09

Sympa mais pas très instructif.

Commentaire de econs le 26/01/2006 12:11:50 administrateur CS

Pour quelle raison aurait-on  Len(Resultat) = 0 ??
Tu l'écris juste au dessus, et il y a au moins 3 espaces dedans ...

ConvertirSecondes = "0 Seconde(s)"
S'il y en a zéro, tu peux tout de suite enlever le (s)

La fonction Format ne te sert à rien. Il s'agit ici de convertir des nombres en chaines de caractères. il faut utiliser CStr()
JoursRestants = CStr(Jours) & " Jour(s)"

Dans le cas où Jours, Heures, Minutes, Secondes valent 0, HeuresRestantes, MinutesRestantes, ... ne sont pas affectées, et dans la chaine de caractères finale, tu te retrouves avec deux espaces consécutifs : "3 Jour(s)  2 Minute(s) 4 Seconde(s)"

Le "Else Secondes=0" ne sert à rien.


A part tout çà, c'est propre. Et il y a une gestion d'erreur intégrée (ce qui est très bien).
Il n'y a pas de commentaire, mais avec des connaissances mathématiques de base, on comprend très bien ce qui se passe.
Idéal pour débutants.


Commentaire de PaTaTe le 26/01/2006 15:27:31

C'est vrai qu'en relisant je trouve aussi qu'il y a matière à optimisations/corrections.

Dès que j'ai un petit moment, je met à jour :)

Commentaire de drissou le 27/01/2006 12:50:58

voici une énième version de conversion, mais là je ne gère pas l'écriture des mots heure, minute et secondes

Sub Secondes_VersHMS(Secondes As Long, NHeures As Long, NMinutes As Long, NSecondes As Long)
Dim Départ As Long

Départ = Secondes
If Secondes = 0 Then
    NHeures = 0
    NMinutes = 0
    NSecondes = 0
Else
    ' calcul des secondes
    NSecondes = Départ Mod 60
    ' calcule des minutes
    Départ = (Départ - NSecondes) / 60
    NMinutes = Départ Mod 60
    ' calcul des heures
    Départ = (Départ - NMinutes) / 60
    NHeures = Départ / 60
End If
End Sub

Driss

Commentaire de yvesyves le 27/01/2006 13:02:57

C déjà plus court!! ;)

Commentaire de PaTaTe le 28/01/2006 05:18:25

et moins fonctionnel !

Si on convertit depuis des secondes pas besoin des parametres minites, heures et age du capitaine.

De plus pourquoi 2 fois secondes en paramètre ?

Commentaire de drissou le 28/01/2006 12:05:00

On peut effectivement mettre des conditions pour éviter de calculer les minutes et les heures.
bon je vois pas ou est le capitaine là dedans, la seule différence est que je n'ai pas mis le calcul du nombre de jours.

Et si tu regardes bien la sub tu verras , je pense sans problème que la première variable 'Secondes' est celle qui importe le nombre initial de secondes à convertir et que la deuxième variable 'Nseconde' qui veut dire 'Nouvelle Seconde' corresppond aux secondes restantes.
d'autre part je ne sais pas si le fait de mettre beaucoup de conditions accélère ou non le traitement. je demande aux puristes aito didacyte que je suis ..
Quant à la fontionnalité, elle me convient car cette sub peut être utilisée même si on ne veut pas tout de suite afficher les valeurs , mais refaire encore un traitement.
L'idéal serait de la transformer en fonction, mais il faudrait créé un type définit
Quant au capitaine, son age ne m'intéresse pas vraiment dans le type de prog que je fais.
je préfaire que les valeurs et pas forcément l'intitulé

enfin, chacun voit midi à sa porte..
si ta version te convient
Drissou

Commentaire de Gobillot le 29/01/2006 19:17:27

une autre version.
calcul limité à une seule division.
n'affiche pas si le nombre est égal à zéro.
met le "s" si nécessaire.


Private Function ConvertirSecondes(Valeur As Double) As String
    Dim dt       As Date
    Dim Fmt      As String
    Dim Fj       As String
    Dim Fh       As String
    Dim Fm       As String
    Dim Fs       As String
    Dim x        As Long
    Dim Resultat As Long
    Dim Jours    As Long
    Dim Heures   As Long
    Dim Minutes  As Long
    Dim Secondes As Long
    
    dt = Valeur / 86400
    Jours = Int(dt)
    Heures = Hour(dt)
    Minutes = Minute(dt)
    Secondes = Second(dt)

    x = 1
    
    Select Case Secondes
       Case Is > 9: Secondes = Secondes * x: Fs = "00 secondes ": x = x * 100
       Case Is > 1: Secondes = Secondes * x: Fs = "0 secondes ":  x = x * 10
       Case Is = 1: Secondes = Secondes * x: Fs = "0 seconde ":   x = x * 10
       Case Is = 0: Fs = ""
       End Select

    Select Case Minutes
       Case Is > 9: Minutes = Minutes * x: Fm = "00 minutes ": x = x * 100
       Case Is > 1: Minutes = Minutes * x: Fm = "0 minutes ":  x = x * 10
       Case Is = 1: Minutes = Minutes * x: Fm = "0 minute ":   x = x * 10
       Case Is = 0: Fm = ""
       End Select
    
    Select Case Heures
       Case Is > 9: Heures = Heures * x: Fh = "00 heures ": x = x * 100
       Case Is > 1: Heures = Heures * x: Fh = "0 heures ": x = x * 10
       Case Is = 1: Heures = Heures * x: Fh = "0 heure ":  x = x * 10
       Case Is = 0: Fh = ""
       End Select
    
    Select Case Jours
       Case Is > 9: Jours = Jours * x: Fj = "00 jours "
       Case Is > 1: Jours = Jours * x: Fj = "0 jours "
       Case Is = 1: Jours = Jours * x: Fj = "0 jour "
       Case Is = 0: Fj = ""
       End Select

    Resultat = Jours + Heures + Minutes + Secondes
    Fmt = Fj & Fh & Fm & Fs
    ConvertirSecondes = Format$(Resultat, Fmt)
    
End Function

Commentaire de katsankat le 30/01/2006 17:18:23

2 autres versions:
La première est dans la shlwapi.dll, la fonction s' appelle StrFromTimeInterval.

Et la mienne:
Option Explicit


Public Function Durée(Tps As Long) As String

    Dim Heure As Long, Mn As Long, Sec As Long

    Dim sHeure As String, sMn As String, sSec As String



    Heure = Format(Int(Tps / 3600), "00")

    Mn = Format(Int((Tps - 3600 * Heure) / 60), "00")

    Sec = Format(Tps - 3600 * Heure - 60 * Mn, "00")

    

    If Heure = 0 Then sHeure = "" Else sHeure = IIf(Heure > 1, Heure & " heures ", "1 heure ")

    If Mn = 0 Then sMn = "" Else sMn = IIf(Mn > 1, Mn & " minutes ", "1 minute ")

    If Sec = 0 Then sSec = "" Else sSec = IIf(Sec > 1, Sec & " secondes ", "1 seconde ")

    

    Durée = sHeure & sMn & sSec


End Function


Private Sub Form_Load()

MsgBox Durée(2354), , "2354s"

MsgBox Durée(1), , "1s"

MsgBox Durée(60), , "60s"

MsgBox Durée(3600), , "3600s"

MsgBox Durée(3601), , "3601s"

MsgBox Durée(148795), , "148795s"

End Sub

Commentaire de PaTaTe le 30/01/2006 19:41:03

J'adore les commentaires, au moins plusieurs methodes sont mises en avant :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

convertir une chaine de caractère en heure minute [ par romglad ] Je récupère une variable de type string sensée contenir une heure minute. ma variable est sur 4 caractères ex : hre = 1721 Je veux affecter cette vari Convertir en seconde l'heure systeme ? [ par DDelec24 ] Cela fait peu de temps que je m'adonne au basic et j'orais une question.Comment-fait'on pour convertir l'heure systeme en secondes ????? :-)merci de v convertir l'heure 12:23:21 en minute [ par mary_tssi ] mary_1984 vb 6 et le calcul d'heure minute seconde [ par boutaibmustapha ] Salut tout le mondeJ'ai mis en place une petite application de pointage heure d'entrée et heure de sortie, je voudrais demander votre aide sur le poin conversion milliseconde en heure minute seconde sous excel [ par maestrade ] conversion milliseconde en heure minute seconde sous excel Soustraction d'heure minute seconde pour faire un decompte [ par megamario ] Bonjour a tous, Me revoilà en stage et je continu mon projet. Je fait de l'acquisition de donnée pendant un certain temps(de quelques minutes à plusi indice en dehors de la plage.....help [ par ecranbleu27 ] bjrj'ai un soucis "erreur 9 indice en dehors de la plage"....sur ma machine ou j' ai vb6, je n'ai pas d'erreur lorsque j'installe le prog sur la deuxi Plusieur question [ par antoine2tt ] Bonjour , J'ai a vous posez plusieurs question concernant un projet très important Voici les questions : -Quel est la valeur de 1 seconde / 1 Minute formatage de date et heure [ par parkerandrea ] Slt à tousj'ai un pb je voudrais à affiché une date au format jj/mm/aaaa en lettre dans un textbox lorsqu'on lance l'éxécution d'1 module(cette date e Conversion d'angle [ par Guillaume170194 ] Bonjour à tous J'ai un petit problème dans mon code que je n'arrive pas à résoudre Voici mon code : [code=vb]Public Class Form1 Private Sub B


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales