Converting date on GPS ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2019-08-06 1:51 AM
Dear Members,
How can I convert date on GPS ?
UTC date 60819
into
6-August-2019 ?
thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2019-08-06 4:34 AM
Couldn't you divide by 100 and 10000 to extract the DD, MM and YY fields, and add 1900 or 2000 depending if YY is below 80
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2019-08-07 9:56 PM
correct me ?
day = date/10000;
month = date/100-(day*100);
year = date/100-((day*100)+month);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2019-08-08 7:15 PM
int day,month,year;
day = date/10000;
month = date/100-(day*100);
year = date/100-((day*100)+month);
printf("======================GPRMC PARSING =================\r\n");
printf("UTC date %x \r\n",date);
printf("Day %u-",day);
printf("Month %u-",month);
printf("Year %u-",year);
printf("\r\n");
printf("====================== D O N E !=================\r\n");
am I right ?
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2019-08-08 7:45 PM
>> am I right ? correct me ?
Put the code in a function, and run test cases against it.
The year computation is broken
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2019-08-08 7:49 PM
thanks for the response,
what do I miss on year computation ?
thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2019-08-08 7:51 PM
UTC date 60819
Day 6 Month 8 Year 19
UTC date 60180
Day 6 Month 1 Year 80
UTC date 310517
Day 31 Month 5 Year 17
UTC date 60819
Day 6 Month 8 Year 2019
UTC date 60180
Day 6 Month 1 Year 1980
UTC date 310517
Day 31 Month 5 Year 2017
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
void test1(int date)
{
int day, month, year;
printf("UTC date %6d \r\n",date);
day = date/10000;
month = (date - (day*10000)) / 100;
year = date - (((day*100) + month) * 100);
printf("Day %2d Month %2d Year %2d\n",day, month, year);
}
void test2(int date)
{
int day, month, year;
printf("UTC date %6d \r\n",date);
day = date / 10000;
date = date % 10000;
month = date / 100;
year = date % 100;
if (year < 80) year += 2000; else year += 1900;
printf("Day %2d Month %2d Year %4d\n",day, month, year);
}
int main(int argc, char **argv)
{
test1(60819);
test1(60180);
test1(310517);
putchar('\n');
test2(60819);
test2(60180);
test2(310517);
putchar('\n');
return(1);
}
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2019-08-08 7:54 PM
Thanks Clive, I will test it and keep posted, thank you...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2019-08-10 2:25 AM
I got output :
UTC date 1050649
Day 105 Month 6 Year 2049
for input 100819
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2019-08-10 2:26 AM
sscanf(field[9],"%x",&date); // UTC date
test1(date);
test2(date);
