From c46cc9e919bc050c84cca1e8af7dd4a49593e451 Mon Sep 17 00:00:00 2001 From: Justin King Date: Mon, 30 Sep 2024 14:52:13 -0400 Subject: [PATCH] Extract local variables for the parameters of DateTimeOffset --- src/NmeaParser/Nmea/Rmc.cs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/NmeaParser/Nmea/Rmc.cs b/src/NmeaParser/Nmea/Rmc.cs index f9a8771..171bc39 100644 --- a/src/NmeaParser/Nmea/Rmc.cs +++ b/src/NmeaParser/Nmea/Rmc.cs @@ -42,12 +42,15 @@ namespace NmeaParser.Messages if (message[8].Length == 6 && message[0].Length >= 6) { - FixTime = new DateTimeOffset(int.Parse(message[8].Substring(4, 2), CultureInfo.InvariantCulture) + 2000, - int.Parse(message[8].Substring(2, 2), CultureInfo.InvariantCulture), - int.Parse(message[8].Substring(0, 2), CultureInfo.InvariantCulture), - int.Parse(message[0].Substring(0, 2), CultureInfo.InvariantCulture), - int.Parse(message[0].Substring(2, 2), CultureInfo.InvariantCulture), - 0, TimeSpan.Zero).AddSeconds(double.Parse(message[0].Substring(4), CultureInfo.InvariantCulture)); + var year = int.Parse(message[8].Substring(4, 2), CultureInfo.InvariantCulture) + 2000; + var month = int.Parse(message[8].Substring(2, 2), CultureInfo.InvariantCulture); + var day = int.Parse(message[8].Substring(0, 2), CultureInfo.InvariantCulture); + var hour = int.Parse(message[0].Substring(0, 2), CultureInfo.InvariantCulture); + var minute = int.Parse(message[0].Substring(2, 2), CultureInfo.InvariantCulture); + var seconds = double.Parse(message[0].Substring(4), CultureInfo.InvariantCulture); + + FixTime = new DateTimeOffset(year, month, day, hour, minute, 0, TimeSpan.Zero) + .AddSeconds(seconds); } Active = (message[1] == "A"); Latitude = NmeaMessage.StringToLatitude(message[2], message[3]);