From 486da2bb5bcb70beec81b7c3064a7b157999a855 Mon Sep 17 00:00:00 2001 From: asund Date: Mon, 25 Sep 2017 09:23:26 -0700 Subject: [PATCH] Small fixes to minmea_gettime * Handle four digit years provided by ZDA in minmea_gettime * Assume GPS epoch to allow dates prior 2000 to be parsed --- minmea.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/minmea.c b/minmea.c index 960cbbe..3b228dd 100644 --- a/minmea.c +++ b/minmea.c @@ -619,7 +619,11 @@ int minmea_gettime(struct timespec *ts, const struct minmea_date *date, const st struct tm tm; memset(&tm, 0, sizeof(tm)); - tm.tm_year = 2000 + date->year - 1900; + tm.tm_year = date->year % 100; // ZDA parser stores 4 digit year, filter centuries here so raw information is still preserved for user. + if (tm.tm_year < 80) // GPS epoch begins 1980, assume a year range of 1980 to 2079 for the library. + { + tm.tm_year += 2000 - 1900; + } tm.tm_mon = date->month - 1; tm.tm_mday = date->day; tm.tm_hour = time_->hours;