X-Git-Url: https://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Fload%2FNmeaMessage.java;h=83f5382b5e0b32b67e2c7f6e82fe1d64dad34059;hp=e524e3922c7e5b69b2ba7d4580e035c3dbdbaeac;hb=c0387c124840c9407e040600fda88f3c3e8f6aa6;hpb=1ee49ae3c8ef3aa2e63eadd458531e5f8bd4f92c diff --git a/tim/prune/load/NmeaMessage.java b/tim/prune/load/NmeaMessage.java index e524e39..83f5382 100644 --- a/tim/prune/load/NmeaMessage.java +++ b/tim/prune/load/NmeaMessage.java @@ -11,6 +11,7 @@ public class NmeaMessage private String _longitude = null; private String _altitude = null; private String _timestamp = null; + private String _date = null; private boolean _fix = false; private boolean _segment = false; @@ -47,6 +48,13 @@ public class NmeaMessage _segment = inSegment; } + /** + * @param inDate date from MRC sentence + */ + public void setDate(String inDate) { + _date = inDate; + } + /** * @return String array for loading */ @@ -83,6 +91,17 @@ public class NmeaMessage try { Calendar cal = Calendar.getInstance(); + // use date if available (today if not) + if (_date != null && _date.length() == 6) { + try { + cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(_date.substring(0, 2))); + cal.set(Calendar.MONTH, Integer.parseInt(_date.substring(2, 4))-1); // month starts at zero + int year = Integer.parseInt(_date.substring(4, 6)); + if (year < 80) {year += 2000;} else {year += 1900;} // two-digit year hack + cal.set(Calendar.YEAR, year); + } + catch (Exception e) {} // ignore exceptions for date, still take time + } cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(_timestamp.substring(0, 2))); cal.set(Calendar.MINUTE, Integer.parseInt(_timestamp.substring(2, 4))); cal.set(Calendar.SECOND, Integer.parseInt(_timestamp.substring(4, 6)));