Urgent SVP : comment prendre juste le time d'une date complète

Résolu
Messages postés
36
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
20 décembre 2006
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Bonjour
j'ai une date complète cad du format jj/mm/aaaa hh:mm:ss je voudrais prendre juste la partie time de cette date et si c possible est ce que je peux appliquer sur cette format la fonction datediff pour calaculer la différence entre deux times.
merci d'avance
A voir également:

22 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Utilise la fonction format :

Format("ta date", "hh:mm:ss")

Et ensuite tu peux utiliser ton datediff comme d'habitude.
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
salut,


Utilise ceci pour isoler l'heure d'une date.










Dim LDate As Date 
'place la date et l'heure actuelle
LDate = Now 
'Isole le temps a l'aide de la fonction Format
MsgBox Format(LDate, "hh:mm:ss") 
 







<small> Coloration syntaxique automatique [AFCK]</small>

       





En revanche pour la deuxieme partie de ta question , il me faudrait plus de précisions. tu veux faire le datediff entre quoi et quoi.

Ci joint les valeurs pour l'interval accepté par la fonction datediff.


yyyy,
Année,

----

q,
Trimestre,

----

m,
Mois,

----

y,
Jour de l'année,

----

d,
Jour,

----

w,
Jour de la semaine,

----

ww,
Semaine,

----

h,
Heure,

----

n,
Minute,

----

s,
Seconde











@+, Julien
Pensez:
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
> DARKSIDIOUS: Salut,  me suis encore fait grillé. faudrait peu être que je me réveille..

@+, Julien
Pensez:
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Une Date VB est encapsulée en format OLE dans un Double, absolument rien d'autre.
Partant de ce constat, absolument aucune coversion ASCII ne doit être faite (à part pour amuser le processeur).

Dim R As Date, dt As Date
dt = Now
R = CDbl(dt) - CLng(dt)

ciao...
BruNews, MVP VC++
Messages postés
36
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
20 décembre 2006

Bonjour,
merci ta réponse ca marche bien mais si je veux maintenant faire la somme des times ca ce fait par quelle fonction?.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
idem, operation numérique.
où est le prob ?

ciao...
BruNews, MVP VC++
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
>39449 BruNews: Merci pour l'information, je me coucherai moins bête ce soir  comme chaque soir. Vive l'informatique pour ça

: Règlement  => : Moteur de recherche => :
Messages postés
36
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
20 décembre 2006

une addition numérique normale ne marche pas entre deux times
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Pour l'addition : DateAdd

BruNews : tu sais, lorsqu'on utilise VB, le but n'est pas de chercher à avoir des opérations extrêmement optimisée, mais d'avoir un code plus facile à lire... contrairement au C ;)
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
>727088 Affoufa: Qu entends tu exactement par "ne marche pas entre deux times"

En suivant l'exemple de =39449 BruNews qu est ce qui t'empêche de faire ceci= >

Dim R As Date, dt As Date 
Dim R1 As Date, Ld As Date 

Dim tpsPlus As Date 

dt = Now 
R = CDbl(dt) - CLng(dt) 
MsgBox R 

Ld = Now 
R1 = CDbl(Ld) - CLng(Ld) 
MsgBox R1 

tpsPlus = R1 + R 
MsgBox tpsPlus 
 

<small> Coloration syntaxique automatique [AFCK] </small>
       

a moins que nous ayons mal compris tes besoins. Sinon il te reste toujours DateAdd

: Règlement  => : Moteur de recherche => :
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Explique clairement ce que tu veux obtenir, jamais vu que 'double + double' ou 'double - double' ne fonctionne pas..

ciao...
BruNews, MVP VC++
Messages postés
36
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
20 décembre 2006

je te remercie bcp DARKSIDIOUS
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Dark > VB = fabrique de handicapés de la prog
Faudrait y mettre des alertes de santé comme sur les paquets de cigarettes.

ciao...
BruNews, MVP VC++
Messages postés
36
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
20 décembre 2006

Bonjour,
DARKSIDIOUS> y - a - t- il un module qui permet de calculer la somme entre deux heures de type "hh:mm:ss" car la fonction dateadd() ca n'a pas tjrs vrai et comme tu sais si la somme des heures atteind 24:00:00 ca deveint un jour et ainsi de suite ... merci d'avance
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Faut séparer les membres heure, minute et secondes au fur et à mesure puis les additionner séparément.

ciao...
BruNews, MVP VC++
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Si dans la fonction DateAdd, tu place en parametre une date et non une heure, et bien la fonction incremente seule la date.

Pour le verifier teste ceci MsgBox DateAdd("h", 13, Now) donc pour l'instant pas besoin de module





: Règlement
=>
:Moteur de recherche
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Pour l'efficace, seules qlqs divisions sur le double final suffiraient mais bon....

ciao...
BruNews, MVP VC++
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Lol BruNews, je me doutais bien que tu dirais cà ;)

C'est sûr que passer par des Double pour les dates, c'est bien plus efficace, cependant, je persiste à dire que cela rend le code beaucoup moins lisible : va faire le rapport entre une date et un double ! A moins de laisser un commentaire, ce qui alourdit la lisibilité du code...

Il faut savoir faire la part des choses entre performances et lisibilité : perdre quelques ms pour y gagner en lisibilité, je ne trouve pas cà désavantageux.
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

je viens mettre mon grain de sel pour Julien et Dark : (bonjour d'ailleurs)
vous dites : Format("ta date", "hh:mm:ss")
autant mettre Format("ta date", "ttttt")

Voilà, fallait que je dise qque chose.
Par contre je ne garanti pas la performance qu'à le code de BruNews

@++

   Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Niveau performance




Pour procéder à 1000 conversions puis le résultat est rempli dans les
cellules Excel (je suis passé par VBA), voici le temps d'exécution :

<col style=\"width: 83pt;\" width=\"110\" /><col style=\"width: 77pt;\" width=\"102\" />----
Méthode CDouble, Méthode Format, ----
0,890625, 0,90625

la méthode de BruNews est 10 ms plus rapide que celle pour la méthode Format !

... c'était la minute calcul !!

@++

  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"

Merci de prendre le temps de répondre à ce [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx sondage]
Merci de prendre le temps de lire [reglement.aspx le Règlement CS]   http://www.smileycentral.com/?partner=ZSzeb008_ZNxdm414YYFR