Convertir valeur date LDAP (100 nanosecondes depuis 1/1/1601) en date

Résolu
dareman Messages postés 39 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 10 janvier 2011 - 23 avril 2009 à 14:01
dareman Messages postés 39 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 10 janvier 2011 - 23 avril 2009 à 16:16
bonjour,
lors de mon stage en entreprise je suis amené à récupérer un champ d'active directory ( outil administration réseau) je programme en visual basic script , ce dernier est alors extrait et me revient sous la forme suivante "128812000000000000", il s'agit donc d'une chaine, je voudrai donc convertir cette chaine en un entier de 64 bits (integer8 (8octets)).
voila si quelqu'un peut me venir en aide, je l'en remercie d'avance

9 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 avril 2009 à 15:53
en gros:

Dim sIn
dim sDate

sIn ="128812000000000000"
sDate = DateAdd("n", Left(sIn, len(sIn)-8)/6 , #1/1/1601#)
MsgBox sDate '# 10/03/2009 23:06:00
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 avril 2009 à 14:33
Public Shared Function Parse(ByVal s As String) As Long
Membre de System.Int64

Résumé :
Convertit une représentation d'un nombre sous forme de chaîne en entier signé 64 bits équivalent.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 avril 2009 à 14:35
AH, non ! tu n'es pas en .NET comme le dit le theme utilisé...
Thèmes / VB.NET et VB 2005 /

tu es en VBS, ce qui n'a strictement rien a voir !

que souhaites tu faire avec cette valeur, une fois sous forme d'un Int64 ?
0
dareman Messages postés 39 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 10 janvier 2011
23 avril 2009 à 15:36
salu,
oui effectivement je suis en vbs, en fait cette valeur représente le nombre d'intervalles de 100 nano seconde depuis le 1er janvier de l'année 1601(année de référence), je souhaiterai convertir ma chaine de 18 caractères (dont tous sont des nombres) en integer 64bits autrement dit du type long afin de pouvoir l'intégrer à un algo qui devrai me resortir un nombre de jours et d'heures au lieu de ce chiffre atroce ^^

en cherchant un peu j'ai trouvé la fonction cLng http://www.bellamyjc.org/fr/vbsfunctions/vsfctclng.html , qui doit me donner un entier du type long or lorsque j'execute mon script j'ai l'erreure suivante  Dépassement de capacité 'Clng' je ne comprend pas pourquoi vu que d'aprés microsoft ( http://msdn.microsoft.com/fr-fr/library/y595sc15(VS.80).aspx ) le type long peut contenir un entier allant jusqu'à 9 223 372 036 854 775 807 (9 2...E+18).

voila donc mon probléme

je te remercie d'avoir prétet de l' attention à mon annonce
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 avril 2009 à 15:48
tu confond encore VBS et .NET (ton lien)

tu peux déjà simplifier le probleme en virant les 0 jusqu'a obtenir un nombre de secondes...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 avril 2009 à 15:54
on convertit ici en nombre de minutes acceptable
et DateAdd fais le reste pour obtenir une date
0
dareman Messages postés 39 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 10 janvier 2011
23 avril 2009 à 16:09
désolé j'ai rédigé l'ancien message pendant que tu était en train de me poster la solution surement ^^
je te remercie du fond du coeur je n'aurai pas pu trouver mieux comme réponse
je vais enfin pouvoir avancé dans mon stage et ne plus rester bloqué la dessus
un grand merci à toi
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 avril 2009 à 16:13
j'ai changé le titre pour que ton post soit plus facile a trouver
0
dareman Messages postés 39 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 10 janvier 2011
23 avril 2009 à 16:16
merci, comme tu as pu le voir je suis nouveau sur le forum et en programmation vb en général
alors c'est vrai que parmi tout ces thèmes je suis pas mal perdu
0
Rejoignez-nous