Les Snippets

Connexion

Convertit en jours / heures / minutes le temps entre 2 dates & heures

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 16/11/2006 15:17:47 et initié par mortalino [Liste]
Date de mise à jour : 19/09/2008 10:24:15
Vue : 14783
Catégorie(s) : Date & Heure, Maths, Algorithme
Langages dispo pour ce code :
- VB6, VBA
- VB6, VBA
- C# 2.x
- PHP 5
- Voir tous les langages pour ce code snippet



Langage : VB6 , VBA
Date ajout : 01/03/2007
Posté par mortalino [Liste]
Public Function EcartDate(ByVal DateDebut As Date, ByVal HeureDebut As Date, ByVal DateFin As Date, ByVal HeureFin As Date) As String
    Dim dStart As Date, dEnd As Date, lEcart As Long
    Dim lTempJ As Long, lTempH As Long, lTempM As Long
    Dim sJour As String, sHeure As String, sMinute As String
    
sJour = Space(1) & "jour"
sHeure = Space(1) & "heure"
sMinute = Space(1) & "minute"
dStart = DateDebut & Space(1) & HeureDebut: dEnd = DateFin & Space(1) & HeureFin
lEcart = DateDiff("n", dStart, dEnd)
Select Case lEcart
    Case Is 2
        EcartDate = lEcart & sMinute
    Case To 59
        EcartDate = lEcart & sMinute & "s"
    Case 60
        EcartDate = "1" & sHeure
    Case 61 To 1439
        lTempH = lEcart \ 24
        If lTempH < Then EcartDate = lTempH & sHeure Else _
                            EcartDate = lTempH & sHeure & "s"
        lTempM = lEcart Mod 24
        If lTempM < Then EcartDate = EcartDate & Space(1) & lTempM & sMinute Else _
                            EcartDate = EcartDate & Space(1) & lTempM & sMinute & "s"
    Case 1440
        EcartDate = "1" & sJour
    Case Is 1440
        lTempJ = lEcart \ (24 60)
        If lTempJ < Then EcartDate = lTempJ & sJour Else _
                            EcartDate = lTempJ & sJour & "s"
        lTempH = (lEcart - (lTempJ * (24 * 60))) \ 60
        If lTempH < Then EcartDate = EcartDate & Space(1) & lTempH & sHeure Else _
                            EcartDate = EcartDate & Space(1) & lTempH & sHeure & "s"
        lTempM = (lEcart - (lTempJ * (24 * 60))) Mod 60 * (((lEcart - (lTempJ * (24 * 60))) \ 60))
        If lTempM < Then EcartDate = EcartDate & Space(1) & lTempM & sMinute Else _
                            EcartDate = EcartDate & Space(1) & lTempM & sMinute & "s"
    End Select
    
End Function
Sub Exemple_Utilisation()
    Debug.Print EcartDate(#11/10/2006#, "19:58", #11/15/2006#, "21:00")   '5 jours 1 heure 2 minutes
    Debug.Print EcartDate(#11/10/2006#, "19:58", #11/15/2006#, "20:59")   '5 jours 1 heure 1 minute
    Debug.Print EcartDate(#11/10/2006#, "19:58", #11/15/2006#, "20:58")   '5 jours 1 heure 0 minute
    Debug.Print EcartDate(#11/10/2006#, "19:58", #11/15/2006#, "22:00")   '5 jours 2 heures 2 minutes
    Debug.Print EcartDate(#11/14/2006#, "20:00", #11/15/2006#, "21:01")   '1 jour 1 heure 1 minute
    
    Debug.Print EcartDate(390360.62539037, 0.625) '1 jour
End Sub
Remarque :
Ce code remplace celui d'avant, car j'ai rajouté la gestion des pluriels sur les mots "jour heure minute" suivant leur nombre.  ;)

Avec Excel, en plaçant cette fonction dans un module, vous pouvez l'utiliser dans une cellule : ex dans B3 :
=EcartDate(A1;B1;A2;B2)

Snippets en rapport avec : Date, Convertir, Heure, Minute



Codes sources en rapport avec : Date, Convertir, Heure, Minute

{PHP} AFFICHAGE DU DÉCOMPTE D'UNE DATE PAR RAPPORT AVEC LA DATE ACTUELLE
Tout est en le titre ! Pour ceux qui comprennent pas, ce script va vous afficher les mois,jours,min...

{Visual Basic, VB6, VB.NET, VB 2005} CONVERTIR DES SECONDES EN MINUTES, HEURES, JOURS
Comme le titre l'indique, cette fonction permet de convertir des secondes en minutes, heures et jour...

{Visual Basic, VB6, VB.NET, VB 2005} CONVERTION DE L'HEURE DU TOPIC MIRC EN DATE ET HEURE
ce code premet la convertion de l'heure de changement de topic sur un salon irc en date et heure ...

{Visual Basic, VB6, VB.NET, VB 2005} CONVERTIR (EN FRACTION) LES HEURES, LES MINUTES ET LES SECONDES
il fait tout vous dites le type de donnée (heure, minute ou seconde) et le prog convertit tout autom...

{Visual Basic, VB6, VB.NET, VB 2005} EXTRACTION D'INFORMATION SUR UNE HEURE HH:MM:SS
Extrait les heures, minutes et secondes d'une chaine de caractères qui comprend un temps de format h...

{Javascript / DHTML} HEURE, DATE DU JOUR DE L'INTERNAUTE ET FÊTE À SOUHAITER.
Ce petit développement AJAX (HTML + JavaScript + PHP + MySQL) sans prétention permet d'afficher l'he...

{} DATE ANSI SQL
Valide le format de date ANSI SQL "YYYY-mm-dd hh:mi:ss am/pm" Permet l'utilisation de "/", "-", "...

{Javascript / DHTML} COMPTE À REBOURS POUR ÉVÉNEMENT
Petit script de compte à rebours pouvant mentionner le nombre de jours, d'heures, de minutes et de s...

{Visual Basic, VB6, VB.NET, VB 2005} GESTION HEURE DE GARDE
Bien voila, c'est une petite appli sans prétention, qui permet de gerer les heures de garde de nos c...

{Delphi} DATE EN ARABE
C'est un petit programme qui convertit la date du jour en langue Arabe. La fonction intégrée conver...