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

Résolu
cs_Affoufa Messages postés 36 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 20 décembre 2006 - 16 août 2006 à 09:47
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 17 août 2006 à 00:42
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

22 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
16 août 2006 à 09:51
Utilise la fonction format :

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

Et ensuite tu peux utiliser ton datediff comme d'habitude.
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 août 2006 à 09:54
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:
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 août 2006 à 09:56
> DARKSIDIOUS: Salut,  me suis encore fait grillé. faudrait peu être que je me réveille..

@+, Julien
Pensez:
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 août 2006 à 10:21
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++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Affoufa Messages postés 36 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 20 décembre 2006
16 août 2006 à 10:27
Bonjour,
merci ta réponse ca marche bien mais si je veux maintenant faire la somme des times ca ce fait par quelle fonction?.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 août 2006 à 10:29
idem, operation numérique.
où est le prob ?

ciao...
BruNews, MVP VC++
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 août 2006 à 10:32
>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 => :
0
cs_Affoufa Messages postés 36 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 20 décembre 2006
16 août 2006 à 10:43
une addition numérique normale ne marche pas entre deux times
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
16 août 2006 à 10:47
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 ;)
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 août 2006 à 10:48
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 => :
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 août 2006 à 10:51
Explique clairement ce que tu veux obtenir, jamais vu que 'double + double' ou 'double - double' ne fonctionne pas..

ciao...
BruNews, MVP VC++
0
cs_Affoufa Messages postés 36 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 20 décembre 2006
16 août 2006 à 10:56
je te remercie bcp DARKSIDIOUS
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 août 2006 à 11:05
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++
0
cs_Affoufa Messages postés 36 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 20 décembre 2006
16 août 2006 à 11:51
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
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 août 2006 à 11:54
Faut séparer les membres heure, minute et secondes au fur et à mesure puis les additionner séparément.

ciao...
BruNews, MVP VC++
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 août 2006 à 11:55
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
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 août 2006 à 11:56
Pour l'efficace, seules qlqs divisions sur le double final suffiraient mais bon....

ciao...
BruNews, MVP VC++
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
16 août 2006 à 12:04
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.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 août 2006 à 12:11
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"
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 août 2006 à 12:53
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
0
Rejoignez-nous