From 285ce979387548967b37141b35b346c3bf6552ec Mon Sep 17 00:00:00 2001
From: "E. Joshua Rigler" <erigler@usgs.gov>
Date: Sat, 20 Aug 2022 10:30:31 -0600
Subject: [PATCH] Addresses issue #73 (residual ss time parsing

---
 .../residual/SpreadsheetAbsolutesFactory.py   | 42 +++++++++++++++----
 1 file changed, 35 insertions(+), 7 deletions(-)

diff --git a/geomagio/residual/SpreadsheetAbsolutesFactory.py b/geomagio/residual/SpreadsheetAbsolutesFactory.py
index 1f50f794f..00e3d4c4e 100644
--- a/geomagio/residual/SpreadsheetAbsolutesFactory.py
+++ b/geomagio/residual/SpreadsheetAbsolutesFactory.py
@@ -320,22 +320,46 @@ class SpreadsheetAbsolutesFactory(object):
                     degrees=sheet["C12"].value, minutes=sheet["D12"].value
                 ),
                 baseline=Angle.from_dms(minutes=sheet["F12"].value),
-                endtime=parse_relative_time(base_date, sheet["B12"].value),
-                starttime=parse_relative_time(base_date, sheet["B12"].value),
+                endtime=parse_relative_time(
+                    # base_date is already a string; sheet "times" are ints
+                    base_date,
+                    "{:04d}".format(sheet["B12"].value),
+                ),
+                starttime=parse_relative_time(
+                    # base_date is already a string; sheet "times" are ints
+                    base_date,
+                    "{:04d}".format(sheet["B12"].value),
+                ),
             ),
             Absolute(
                 element="H",
                 absolute=sheet["C17"].value,
                 baseline=sheet["F17"].value,
-                endtime=parse_relative_time(base_date, sheet["B17"].value),
-                starttime=parse_relative_time(base_date, sheet["B17"].value),
+                endtime=parse_relative_time(
+                    # base_date is already a string; sheet "times" are ints
+                    base_date,
+                    "{:04d}".format(sheet["B17"].value),
+                ),
+                starttime=parse_relative_time(
+                    # base_date is already a string; sheet "times" are ints
+                    base_date,
+                    "{:04d}".format(sheet["B17"].value),
+                ),
             ),
             Absolute(
                 element="Z",
                 absolute=sheet["C22"].value,
                 baseline=sheet["F22"].value,
-                endtime=parse_relative_time(base_date, sheet["B22"].value),
-                starttime=parse_relative_time(base_date, sheet["B22"].value),
+                endtime=parse_relative_time(
+                    # base_date is already a string; sheet "times" are ints
+                    base_date,
+                    "{:04d}".format(sheet["B22"].value),
+                ),
+                starttime=parse_relative_time(
+                    # base_date is already a string; sheet "times" are ints
+                    base_date,
+                    "{:04d}".format(sheet["B22"].value),
+                ),
             ),
         ]
         return absolutes
@@ -355,7 +379,11 @@ class SpreadsheetAbsolutesFactory(object):
             residual = "residual" in m and sheet[m["residual"]].value or None
             time = (
                 "time" in m
-                and parse_relative_time(base_date, sheet[m["time"]].value)
+                and parse_relative_time(
+                    # base_date is already a string; sheet "times" are ints
+                    base_date,
+                    "{:06d}".format(sheet[m["time"]].value),
+                )
                 or None
             )
             h = "h" in m and sheet[m["h"]].value or None
-- 
GitLab