Convertir valeur date LDAP (100 nanosecondes depuis 1/1/1601) en date [Résolu]

Signaler
Messages postés
39
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
10 janvier 2011
-
Messages postés
39
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
10 janvier 2011
-
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

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
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.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
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 ?
Messages postés
39
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
10 janvier 2011

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
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...
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
on convertit ici en nombre de minutes acceptable
et DateAdd fais le reste pour obtenir une date
Messages postés
39
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
10 janvier 2011

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
j'ai changé le titre pour que ton post soit plus facile a trouver
Messages postés
39
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
10 janvier 2011

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