7 votes

Conversion du numéro de semaine GPS et de l'heure de la semaine en date.

J'ai un dispositif GPS qui envoie certains objets, dont une heure GPS, à mon serveur.
C'est au format du numéro de la semaine, des secondes de la semaine.

Je veux le convertir en un format de date. J'ai trouvé quelques codes pour cela, mais tout ce que j'ai trouvé, c'est comment convertir le numéro de semaine en date, sans inclure la seconde dans la semaine.

J'ai trouvé cette page web Mais je n'arrive pas à trouver comment le faire dans le code de l'application Windows en c#.

Les données de l'échantillon :

GPS Week number 1643
GPS second into week 377505

Cela devrait être 2011/07/07 10:51:44 .

10voto

ZombieSheep Points 18967

Si vous connaissez la DateTime qui représente la semaine, il suffit d'appeler AddSeconds pour trouver la DateTime dont vous avez besoin.

Selon la calculatrice dont le lien figure ci-dessus, la semaine 1643, 377505 devrait correspondre à 2011/07/07 07:51:44, et non à 10:51:44 (peut-être s'agit-il d'un décalage de fuseau horaire ?) Quoi qu'il en soit, le code suivant vous donnera le même résultat que la calculatrice du lien lorsque l'heure GMT est sélectionnée - pour les différents fuseaux horaires, vous devrez appliquer vos propres décalages.

DateTime GetFromGps(int weeknumber, double seconds)
{
    DateTime datum = new DateTime(1980,1,6,0,0,0);
    DateTime week = datum.AddDays(weeknumber * 7);
    DateTime time = week.AddSeconds(seconds);
    return time;
}

1voto

John Points 26

Cela fonctionne en VB6

Dim dtt As Date
dtt = "6 / 1 / 1980"
dtt = DateAdd("d", (1837 * 7), dtt)
dtt = DateAdd("s", 129414, dtt)

1837 est la semaine du gps 129414 est la seconde de la semaine

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X