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]
Vue : 10525
Catégorie(s) : Date & Heure, Maths, Algorithme
Langages dispo pour ce code :
- VB6, VBA
- VB6, VBA
- C# 2.x



Langage : VB6 , VBA
Date ajout : 28/02/2007
Posté par mortalino [Liste]
Public Function NewDateDiff(ByVal DateDebut As String, ByVal DateFin As String) As String
      Dim As Date
d = DateAdd("s", DateDiff("s", DateDebut, DateFin), "01-01-2000")
NewDateDiff = Format(d, "yyyy") - 2000 " ans " Format(d, "m") - " mois " & _
Format(d, "d") - " jours " Format(d, "hh:mm:ss")
End Function
Sub EXEMPLE()
    MsgBox NewDateDiff("27-02-2007 10:03:05""31-03-2009 11:00:00")
    ' resultat :  2 ans 1 mois 1 jours 00:56:55
End Sub
Remarque :
Code plus court que le mien  ;)
Et oui, c'est celui de notre ami ~JmfMarques~
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)
Langage : C# 2.x
Date ajout : 10/03/2007
Posté par Tenguryu [Liste]
DateTime Debut = new DateTime(2007, 03, 10, 9, 55, 20); //Le 10 mars 2007 à 9:55:20
DateTime Fin = new DateTime(2007, 04, 15, 17, 23, 15); // Le 15 avril à 17:23:15
TimeSpan Difference = Fin - Debut;
Console.WriteLine(ts.Days.ToString()+" jours");
Console.WriteLine(ts.Hours.ToString()+" heures");
Console.WriteLine(ts.Minutes.ToString()+" minutes");
Console.WriteLine(ts.Seconds.ToString()+" secondes");
/* Affiche 
36 jours
7 heures
27 minutes
55 secondes
*/


Remarque :
Une version C# qui utilise le TimeSpan

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} 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...

{Delphi} COMPOSANT BOUTON TYPE VA-ET-VIENT POUR DATE ET HEURE AVEC FORMAT ET COULEUR
Composant TDateHeure Version 2007 ® Guy Bidi Utilisable jusqu'à la version 2007, issu d'un Bou...

{Flash} HORLOGE ANALOGIQUE
Voici Mon premier codes en solo ! Sa manque un peux de design ... Mais bon ... N'hésiter pas a dir...