Bonjour,
J'ai 4 octets (unsigned long) qui représentent une date GMT.
Comment puis-je convertir ces 4 octets en une chaine au format "11/08/2004" par exemple ?
Bonjour,
J'ai 4 octets (unsigned long) qui représentent une date GMT.
Comment puis-je convertir ces 4 octets en une chaine au format "11/08/2004" par exemple ?
Bonjour,
la fonction CDate, ne fonctionne pas dans ton cas?
D'où viennent c'est 4 octets? Essaye avec les valeurs ascii :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 date_fr = chr(mid(date_gmt,1,1) & "/" & chr(mid(date_gmt,2,1) & "/" & chr(mid(date_gmt,3,1) & "/" & chr(mid(date_gmt,4,1)
http://clubnix.esiee.fr sauvez nous
Les 4 octets sont un unsigned long qui représente le nombre de secondes depuis le 01/01/1970
Dans cet exemple, l'octet0 est l'octet de poids faible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim d As Date d = CDate(octet0 + octet1 * 256 + octet2 * 65536 + octet3 * 16777216)
Avant de poser une question, merci de chercher dans les rubriques suivantes:
FAQ VB
Tutoriaux VB
Recherche avancée sur le forum
Il suffit de regarder la doc de CDate pour voir que CDate(un long) ne donne rien.
Si on essaye, on vérifie bien que ça ne fonctionne pas.
J'ai déjà la date, il me reste les heures
En entrée, j'ai lgDate, un long qui contient mes 4 octets
En sortie, je renvoie dateRetour qui est de type Date()
Il ne reste plus que les heures
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 dateDebut = DateSerial(1970, 1, 1) Dim nNbJours As Long nNbJours = CLng(lgDate / 86400) dateRetour = dateDebut + nNbJours
Et comme çà ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim d As Date d = DateAdd("s", octet0 + octet1 * 256 + octet2 * 65536 + octet3 * 16777216, DateSerial(1970, 1, 1))
Avant de poser une question, merci de chercher dans les rubriques suivantes:
FAQ VB
Tutoriaux VB
Recherche avancée sur le forum
C'est ce que j'avais écrit mais en plus joli.
Je garde cette solution :
Merci !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 dateRetour = DateAdd("s", CDbl(lgDate), DateSerial(1970, 1, 1) + TimeSerial(2, 0, 0))
Nb : je ne sais pas pourquoi, mais il faut que je décale de exactement 2 heures pour avoir la bonne heure.
France (été) = GMT + 2Envoyé par Kaji
Avant de poser une question, merci de chercher dans les rubriques suivantes:
FAQ VB
Tutoriaux VB
Recherche avancée sur le forum
Et en hiver, France (hiver) = GMT + combien ?
GMT + 1 en hiver
Avant de poser une question, merci de chercher dans les rubriques suivantes:
FAQ VB
Tutoriaux VB
Recherche avancée sur le forum
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager