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



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
Langage : PHP 5
Date ajout : 19/09/2008
Posté par codefalse [Liste]
DateMAJ : 19/09/2008
<?php
/**
 * Créer un objet DateTime avec le nombre de secondes donné en paramètres
 * Comme la date est de l'an 0, le temps retourné correspondra au temps eh jours, heures, minutes, secondes du timestamp indiqué
 * 
 * @param Integer $iTime : Timestamp en seconde
 * @param String $sFormat (optionel) : Le format de la date à retourner
 * 
 * @return String : La date formatée
 */
function timetostr ($iTime, $sFormat = 'd\j H\hi\ms\s') {
    $oTime = new DateTime ('@'.$iTime);
    return $oTime->format ($sFormat);
}
?>


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

{PHP} FORMATER DES MILLISECONDES AU FORMAT HH:MM:SS:MMM
Bizarre, mais je n'ai pas trouvé de soluce à mon besoin express. Je me suis donc fait la fonction v...

{Delphi} TIMESERVER V1.0.3
Un programme ridiculement simple par rapport au service qu'il rend ! Se connecte à des serveurs de ...

{Visual Basic, VB6, VB.NET, VB 2005} CALENDRIER VB6 ET HORLOGE ANALOGIQUE
ce calendrier s'inspire du calendrier type obtenue sous windows vista et 7 quand on clic dans la bar...

{Javascript / DHTML} HORLOGE TRIPLE AFFICHAGE AU FORMAT AM/PM/24H/DST
HORLOGE TRIPLE AFFICHAGE au format AM/PM/24H/DST dans trois différents pays: la FRANCE, les EMIR...

{Javascript / DHTML} HORLOGE NUMÉRIQUE EN JAVASCRIPT, COMPATIBLE IE ET FF
Voici le code source javascript pour une horloge numérique. Ce script est compatible pour Internet E...