diff --git a/news/get_dates_prefix.rst b/news/get_dates_prefix.rst
new file mode 100644
index 00000000..8766a478
--- /dev/null
+++ b/news/get_dates_prefix.rst
@@ -0,0 +1,12 @@
+**Added:**
+    * The get_dates function in tools.py can now take a prefix string when searching for dates
+
+**Changed:** None
+
+**Deprecated:** None
+
+**Removed:** None
+
+**Fixed:** None
+
+**Security:** None
\ No newline at end of file
diff --git a/regolith/dates.py b/regolith/dates.py
index 1a409688..d9fcb95a 100644
--- a/regolith/dates.py
+++ b/regolith/dates.py
@@ -131,7 +131,7 @@ def last_day(year, month):
     """
     return calendar.monthrange(year, month_to_int(month))[1]
 
-def get_dates(thing):
+def get_dates(thing, date_field_prefix=None):
     '''
     given a dict like thing, return the items
 
@@ -139,10 +139,14 @@ def get_dates(thing):
     ----------
     thing: dict
       the dict that contains the dates
+    date_field_prefix: string (optional)
+      the prefix to look for before the date parameter. For example given "submission"
+      the function will search for submission_day, submission_year, etc.
 
     Returns
     -------
-       dict containing datetime.date objects for begin_date end_date and date
+       dict containing datetime.date objects for begin_date end_date and date, and
+       prefix_date if a prefix string was passed
 
     Description
     -----------
@@ -155,7 +159,9 @@ def get_dates(thing):
     year.
 
     If "year", "month" and "day" are found the function will return these in the
-    "date" field and begin_date and end_date will be None
+    "date" field and begin_date and end_date will match the "date" field. If only
+    a "year" is found, then the date attribute will be none but the begin and end
+    dates will be the first and last day of that respective year. 
 
     If year is found but no month or day are found the function will return
     begin_date and end_date with the beginning and the end of the given year/month.
@@ -166,49 +172,82 @@ def get_dates(thing):
 
     If begin_year is found, the begin month and begin day are missing they are set to
     1 and 1, respectively
+
+    If a date field prefix is passed in this function will search for prefix_year as
+    well as prefix_month, prefix_day, and prefix_date. For example, if the prefix string
+    passed in is "submitted" then this function will look for submitted_date instead of
+    just date.
+
+    Examples
+    --------
+    >>> get_dates({'submission_day': 10, 'submission_year': 2020, 'submission_month': 'Feb'}, "submission")
+
+    This would return a dictionary consisting of the begin date, end, date, and date for the given input.
+    Instead of searching for "day" in the thing, it would search for "submission_day" since a prefix was
+    given. The following dictionary is returned (note that a submission_date and a date key are in the
+    dictionary):
+    {'begin_date': datetime.date(2020, 2, 10),
+     'end_date': datetime.date(2020, 2, 10),
+     'submission_date': datetime.date(2020, 2, 10),
+     'date': datetime.date(2020, 2, 10)
+    }
+
+    >>> get_dates({'begin_year': 2019, 'end_year': 2020, 'end_month': 'Feb'})
+
+    This will return a dictionary consisting of the begin date, end date, and date for the given input.
+    Because no prefix string was passed in, the function will search for "date" in the input instead of
+    prefix_input. The following dictionary is returned:
+    {'begin_date': datetime.date(2019, 1, 1),
+     'end_date': datetime.date(2020, 2, 29),
+     'date': None
+    }
     '''
 
+    datenames = ["day", "month", "year", "date"]
+    if date_field_prefix:
+        datenames = [f"{date_field_prefix}_{datename}" for datename in datenames]
+
     if thing.get("end_year") and not thing.get("begin_year"):
         print('WARNING: end_year specified without begin_year')
     begin_date, end_date, date = None, None, None
-    if thing.get('begin_year'):
-        if not thing.get('begin_month'):
-            thing['begin_month'] = 1
-        if not thing.get('begin_day'):
-            thing['begin_day'] = 1
-        begin_date = datetime.date(thing['begin_year'],month_to_int(thing['begin_month']),
-                                   thing['begin_day'])
-    if thing.get('end_year'):
-        if not thing.get('end_month'):
-            thing['end_month'] = 12
-        if not thing.get('end_day'):
-            thing['end_day'] = last_day(thing['end_year'], thing['end_month'])
-        end_date = datetime.date(thing['end_year'],month_to_int(thing['end_month']),
-                                   thing['end_day'])
-    if thing.get('year'):
-        if not thing.get('month'):
-            if thing.get('begin_year'):
+    if thing.get("begin_year"):
+        if not thing.get("begin_month"):
+            thing["begin_month"] = 1
+        if not thing.get("begin_day"):
+            thing["begin_day"] = 1
+        begin_date = datetime.date(thing["begin_year"],month_to_int(thing["begin_month"]),
+                                   thing["begin_day"])
+    if thing.get("end_year"):
+        if not thing.get("end_month"):
+            thing["end_month"] = 12
+        if not thing.get("end_day"):
+            thing["end_day"] = last_day(thing["end_year"], thing["end_month"])
+        end_date = datetime.date(thing["end_year"],month_to_int(thing["end_month"]),
+                                   thing["end_day"])
+    if thing.get(datenames[2]):
+        if not thing.get(datenames[1]):
+            if thing.get("begin_year"):
                 print("WARNING: both year and begin_year specified.  Year info will be used")
-            begin_date = datetime.date(thing['year'],1,1)
-            end_date = datetime.date(thing['year'],12,31)
-        elif not thing.get('day'):
-            if thing.get('begin_year'):
+            begin_date = datetime.date(thing[datenames[2]],1,1)
+            end_date = datetime.date(thing[datenames[2]],12,31)
+        elif not thing.get(datenames[0]):
+            if thing.get("begin_year"):
                 print("WARNING: both year and begin_year specified.  Year info will be used")
-            begin_date = datetime.date(thing['year'],month_to_int(thing['month']),
+            begin_date = datetime.date(thing[datenames[2]],month_to_int(thing[datenames[1]]),
                                    1)
-            end_date = datetime.date(thing['year'],
-                                       month_to_int(thing['month']),
-                                       last_day(thing['year'], thing['month']))
+            end_date = datetime.date(thing[datenames[2]],
+                                       month_to_int(thing[datenames[1]]),
+                                       last_day(thing[datenames[2]], thing[datenames[1]]))
         else:
-            date = datetime.date(thing['year'],
-                                       month_to_int(thing['month']),
-                                       thing['day'])
-            begin_date = datetime.date(thing['year'],
-                                       month_to_int(thing['month']),
-                                       thing['day'])
-            end_date = datetime.date(thing['year'],
-                                       month_to_int(thing['month']),
-                                       thing['day'])
+            date = datetime.date(thing[datenames[2]],
+                                       month_to_int(thing[datenames[1]]),
+                                       thing[datenames[0]])
+            begin_date = datetime.date(thing[datenames[2]],
+                                       month_to_int(thing[datenames[1]]),
+                                       thing[datenames[0]])
+            end_date = datetime.date(thing[datenames[2]],
+                                       month_to_int(thing[datenames[1]]),
+                                       thing[datenames[0]])
     if thing.get('begin_date'):
         if isinstance(thing.get('begin_date'), str):
             begin_date = date_parser.parse(thing.get('begin_date')).date()
@@ -219,12 +258,16 @@ def get_dates(thing):
             end_date = date_parser.parse(thing.get('end_date')).date()
         else:
             end_date = thing.get('end_date')
-    if thing.get('date'):
-        if isinstance(thing.get('date'), str):
-            date = date_parser.parse(thing.get('date')).date()
+    if thing.get(datenames[3]):
+        if isinstance(thing.get(datenames[3]), str):
+            date = date_parser.parse(thing.get(datenames[3])).date()
         else:
-            date = thing.get('date')
-    dates = {'begin_date': begin_date, 'end_date': end_date, 'date': date}
+            date = thing.get(datenames[3])
+
+    if date_field_prefix:
+        dates = {'begin_date': begin_date, 'end_date': end_date, datenames[3]: date, 'date': date}
+    else:
+        dates = {'begin_date': begin_date, 'end_date': end_date, 'date': date}
     return dates
 
 

ENH: extend get_dates to take an optional name for the date field
current behavior:
get_dates looks for day, month, year, date, and also begin_ and end_ day/month/year/date

desired behavior:
the same as before, but optionally I can supply an argument ``date_field_prefix``.  Then get_dates still searches for begin and end date as before, but instead of looking for day/month/year/date it looks for ``<date_field_prefix>_day/month/year/date``.

example:
```
get_dates(proposals, date_field_prefix="submission")
```
will treat ``submission_day`` as it would ``day``, ``submission_month`` as it would ``month`` and so on.
diff --git a/tests/test_dates.py b/tests/test_dates.py
index 7c127bbb..635fc497 100644
--- a/tests/test_dates.py
+++ b/tests/test_dates.py
@@ -27,6 +27,8 @@ TEST_END_DATE = date(2019, 2, 5)
 )
 def test_month_to_str(input, expected):
     assert month_to_str_int(input) == expected
+
+
 import datetime
 from regolith.dates import date_to_float, month_to_int
 
@@ -67,11 +69,12 @@ def test_month_to_int(input, expected):
 def test_date_to_float(input, expected):
     assert date_to_float(input[0], input[1], d=input[2]) == expected
 
+
 @pytest.mark.parametrize(
     "input,expected",
     [
-            (1, "01"),
-    (10, "10"),
+        (1, "01"),
+        (10, "10"),
     ],
 )
 def test_day_to_str(input, expected):
@@ -107,100 +110,114 @@ def test_find_gaps_overlaps(input, flag, expected):
 @pytest.mark.parametrize(
     "input,expected",
     [
-        ({'year': 2020}, {'begin_date': datetime.date(2020, 1, 1),
-                          'end_date': datetime.date(2020, 12, 31),
-                          'date': None
-                          }
+        (({'year': 2020}, None), {'begin_date': datetime.date(2020, 1, 1),
+                                  'end_date': datetime.date(2020, 12, 31),
+                                  'date': None
+                                  }
          ),
-        ({'year': 2020, 'month': 9},
+        (({'year': 2020, 'month': 9}, None),
          {'begin_date': datetime.date(2020, 9, 1),
           'end_date': datetime.date(2020, 9, 30),
           'date': None
           }
          ),
-        ({'year': 2020, 'month': 'Sep', 'day': 15},
+        (({'year': 2020, 'month': 'Sep', 'day': 15}, None),
          {'begin_date': datetime.date(2020, 9, 15),
           'end_date': datetime.date(2020, 9, 15),
           'date': datetime.date(2020, 9, 15)
           }
          ),
-        ({'begin_year': 2020},
+        (({'begin_year': 2020}, None),
          {'begin_date': datetime.date(2020, 1, 1),
           'end_date': None,
           'date': None
           }
          ),
-        ({'begin_year': 2020, 'begin_month': 4},
+        (({'begin_year': 2020, 'begin_month': 4}, None),
          {'begin_date': datetime.date(2020, 4, 1),
           'end_date': None,
           'date': None
           }
          ),
-        ({'begin_year': 2020, 'begin_month': 4, 'begin_day': 5},
+        (({'begin_year': 2020, 'begin_month': 4, 'begin_day': 5}, None),
          {'begin_date': datetime.date(2020, 4, 5),
           'end_date': None,
           'date': None
           }
          ),
-        ({'begin_year': 2019, 'end_year': 2020},
+        (({'begin_year': 2019, 'end_year': 2020}, None),
          {'begin_date': datetime.date(2019, 1, 1),
           'end_date': datetime.date(2020, 12, 31),
           'date': None
           }
          ),
-        ({'begin_year': 2019, 'end_year': 2020, 'end_month': 'Feb'},
+        (({'begin_year': 2019, 'end_year': 2020, 'end_month': 'Feb'}, None),
          {'begin_date': datetime.date(2019, 1, 1),
           'end_date': datetime.date(2020, 2, 29),
           'date': None
           }
          ),
-        ({'begin_year': 2019, 'end_year': 2020, 'end_month': 'Feb', 'end_day': 10},
+        (({'begin_year': 2019, 'end_year': 2020, 'end_month': 'Feb', 'end_day': 10}, None),
          {'begin_date': datetime.date(2019, 1, 1),
           'end_date': datetime.date(2020, 2, 10),
           'date': None
           }
          ),
-        ({'begin_date': '2020-05-09', 'begin_year': 2019, 'end_year': 2020, 'end_month': 'Feb',
-          'end_day': 10},
+        (({'begin_date': '2020-05-09', 'begin_year': 2019, 'end_year': 2020, 'end_month': 'Feb',
+           'end_day': 10}, None),
          {'begin_date': datetime.date(2020, 5, 9),
           'end_date': datetime.date(2020, 2, 10),
           'date': None
           }
          ),
-        ({'end_date': '2020-5-20', 'begin_year': 2019, 'end_year': 2020, 'end_month': 'Feb',
-          'end_day': 10},
+        (({'end_date': '2020-5-20', 'begin_year': 2019, 'end_year': 2020, 'end_month': 'Feb',
+           'end_day': 10}, None),
          {'begin_date': datetime.date(2019, 1, 1),
           'end_date': datetime.date(2020, 5, 20),
           'date': None
           }
          ),
-        ({'date': '2020-5-20', 'begin_year': 2019, 'end_year': 2020,
-          'end_month': 'Feb',
-          'end_day': 10},
+        (({'date': '2020-5-20', 'begin_year': 2019, 'end_year': 2020,
+           'end_month': 'Feb',
+           'end_day': 10}, None),
          {'begin_date': datetime.date(2019, 1, 1),
           'end_date': datetime.date(2020, 2, 10),
           'date': datetime.date(2020, 5, 20)
           }
          ),
-        ({'date': datetime.date(2020, 5, 20), 'begin_year': 2019, 'end_year': 2020,
-          'end_month': 'Feb',
-          'end_day': 10},
+        (({'date': datetime.date(2020, 5, 20), 'begin_year': 2019, 'end_year': 2020,
+           'end_month': 'Feb',
+           'end_day': 10}, None),
          {'begin_date': datetime.date(2019, 1, 1),
           'end_date': datetime.date(2020, 2, 10),
           'date': datetime.date(2020, 5, 20)
           }
          ),
-        ({'date': datetime.date(2020, 5, 20), 'begin_date': datetime.date(2015, 6, 8),
-          'end_date': datetime.date(2025, 10, 4)},
+        (({'date': datetime.date(2020, 5, 20), 'begin_date': datetime.date(2015, 6, 8),
+           'end_date': datetime.date(2025, 10, 4)}, None),
          {'begin_date': datetime.date(2015, 6, 8),
           'end_date': datetime.date(2025, 10, 4),
           'date': datetime.date(2020, 5, 20)
           }
          ),
+        (({'submission_day': 10, 'submission_year': 2020,
+           'submission_month': 'Feb'}, "submission"),
+         {'begin_date': datetime.date(2020, 2, 10),
+          'end_date': datetime.date(2020, 2, 10),
+          'submission_date': datetime.date(2020, 2, 10),
+          'date': datetime.date(2020, 2, 10)
+          }
+         ),
+        (({'year': 2020, 'submission_year': 2019}, "submission"), {'begin_date': datetime.date(2019, 1, 1),
+                                                                   'end_date': datetime.date(2019, 12, 31),
+                                                                   'submission_date': None,
+                                                                   'date': None
+                                                                   }
+         ),
     ],
 )
 def test_get_dates(input, expected):
-    actual = get_dates(input)
+    actual = get_dates(input[0], input[1])
     assert actual == expected
 
 

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest coverage
apt-get update apt-get install -y gcc
3.8
requirements/run.txt requirements/test.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
bibtexparser==1.4.3
Cerberus==1.3.7
certifi==2025.1.31
charset-normalizer==3.4.1
codecov==2.1.13
coverage==7.6.1
dnspython==2.6.1
docutils==0.20.1
et_xmlfile==2.0.0
exceptiongroup==1.2.2
idna==3.10
iniconfig==2.1.0
Jinja2==3.1.6
MarkupSafe==2.1.5
nameparser==1.1.3
numpy==1.24.4
openpyxl==3.1.5
packaging==24.2
pandas==2.0.3
pluggy==1.5.0
pymongo==4.10.1
pyparsing==3.1.4
pytest==8.3.5
python-dateutil==2.9.0.post0
pytz==2025.2
-e git+https://github.com/regro/regolith.git@16c3c259afc53a99eb68ec01d2941d417917111b#egg=regolith
requests==2.32.3
rever==0.3.3
ruamel.yaml==0.18.10
ruamel.yaml.clib==0.2.8
six==1.17.0
tomli==2.2.1
tzdata==2025.2
urllib3==2.2.3
xonsh==0.14.0

name: regolith
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=24.2=py38h06a4308_0
  - python=3.8.20=he870216_0
  - readline=8.2=h5eee18b_0
  - setuptools=75.1.0=py38h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.44.0=py38h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - bibtexparser==1.4.3
      - cerberus==1.3.7
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - codecov==2.1.13
      - coverage==7.6.1
      - dnspython==2.6.1
      - docutils==0.20.1
      - et-xmlfile==2.0.0
      - exceptiongroup==1.2.2
      - idna==3.10
      - iniconfig==2.1.0
      - jinja2==3.1.6
      - markupsafe==2.1.5
      - nameparser==1.1.3
      - numpy==1.24.4
      - openpyxl==3.1.5
      - packaging==24.2
      - pandas==2.0.3
      - pluggy==1.5.0
      - pymongo==4.10.1
      - pyparsing==3.1.4
      - pytest==8.3.5
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - requests==2.32.3
      - rever==0.3.3
      - ruamel-yaml==0.18.10
      - ruamel-yaml-clib==0.2.8
      - six==1.17.0
      - tomli==2.2.1
      - tzdata==2025.2
      - urllib3==2.2.3
      - xonsh==0.14.0
prefix: /opt/conda/envs/regolith

tests/test_dates.py::test_get_dates[input0-expected0] tests/test_dates.py::test_get_dates[input1-expected1] tests/test_dates.py::test_get_dates[input2-expected2] tests/test_dates.py::test_get_dates[input3-expected3] tests/test_dates.py::test_get_dates[input4-expected4] tests/test_dates.py::test_get_dates[input5-expected5] tests/test_dates.py::test_get_dates[input6-expected6] tests/test_dates.py::test_get_dates[input7-expected7] tests/test_dates.py::test_get_dates[input8-expected8] tests/test_dates.py::test_get_dates[input9-expected9] tests/test_dates.py::test_get_dates[input10-expected10] tests/test_dates.py::test_get_dates[input11-expected11] tests/test_dates.py::test_get_dates[input12-expected12] tests/test_dates.py::test_get_dates[input13-expected13] tests/test_dates.py::test_get_dates[input14-expected14] tests/test_dates.py::test_get_dates[input15-expected15]
tests/test_dates.py::test_month_to_str[1-01] tests/test_dates.py::test_month_to_str[10-10] tests/test_dates.py::test_month_to_str[Oct-10] tests/test_dates.py::test_month_to_str[Jan-01] tests/test_dates.py::test_get_due_date[2020-05-01-expected0] tests/test_dates.py::test_get_due_date[input1-expected1] tests/test_dates.py::test_get_due_date[2020-True] tests/test_dates.py::test_month_to_int[Jan-1] tests/test_dates.py::test_month_to_int[1-1] tests/test_dates.py::test_month_to_int[February-2] tests/test_dates.py::test_date_to_float[input0-2019.0115] tests/test_dates.py::test_date_to_float[input1-2019.05] tests/test_dates.py::test_date_to_float[input2-2019.0202] tests/test_dates.py::test_day_to_str[1-01] tests/test_dates.py::test_day_to_str[10-10] tests/test_dates.py::test_find_gaps_overlaps[input0-False-True] tests/test_dates.py::test_find_gaps_overlaps[input1-False-True] tests/test_dates.py::test_find_gaps_overlaps[input2-False-False] tests/test_dates.py::test_find_gaps_overlaps[input3-False-False] tests/test_dates.py::test_find_gaps_overlaps[input4-True-True] tests/test_dates.py::test_find_gaps_overlaps[input5-False-True] tests/test_dates.py::test_find_gaps_overlaps[input6-False-False] tests/test_dates.py::test_last_day[2020-2-29] tests/test_dates.py::test_last_day[2020-Feb-29] tests/test_dates.py::test_is_current[thing0-False] tests/test_dates.py::test_is_current[thing1-True] tests/test_dates.py::test_is_current[thing2-True] tests/test_dates.py::test_is_current[thing3-True] tests/test_dates.py::test_is_current[thing4-True] tests/test_dates.py::test_is_current[thing5-False] tests/test_dates.py::test_is_current[thing6-True] tests/test_dates.py::test_is_current[thing7-True] tests/test_dates.py::test_is_current[thing8-False] tests/test_dates.py::test_is_current[thing9-True] tests/test_dates.py::test_is_current[thing10-True] tests/test_dates.py::test_is_current[thing11-False] tests/test_dates.py::test_is_current[thing12-False] tests/test_dates.py::test_is_current[thing13-True] tests/test_dates.py::test_is_current[thing14-False] tests/test_dates.py::test_is_current[thing15-False] tests/test_dates.py::test_is_current[thing16-True] tests/test_dates.py::test_is_current[thing17-False] tests/test_dates.py::test_is_current[thing18-False] tests/test_dates.py::test_is_current[thing19-True] tests/test_dates.py::test_is_current[thing20-False] tests/test_dates.py::test_has_started[thing0-False] tests/test_dates.py::test_has_started[thing1-True] tests/test_dates.py::test_has_started[thing2-True] tests/test_dates.py::test_has_started[thing3-True] tests/test_dates.py::test_has_started[thing4-True] tests/test_dates.py::test_has_started[thing5-False] tests/test_dates.py::test_has_started[thing6-True] tests/test_dates.py::test_has_started[thing7-True] tests/test_dates.py::test_has_started[thing8-False] tests/test_dates.py::test_has_started[thing9-True] tests/test_dates.py::test_has_started[thing10-True] tests/test_dates.py::test_has_started[thing11-False] tests/test_dates.py::test_has_started[thing12-True] tests/test_dates.py::test_has_started[thing13-True] tests/test_dates.py::test_has_started[thing14-False] tests/test_dates.py::test_has_started[thing15-True] tests/test_dates.py::test_has_started[thing16-True] tests/test_dates.py::test_has_started[thing17-False] tests/test_dates.py::test_has_started[thing18-True] tests/test_dates.py::test_has_started[thing19-True] tests/test_dates.py::test_has_started[thing20-False] tests/test_dates.py::test_has_finished[thing0-False] tests/test_dates.py::test_has_finished[thing1-False] tests/test_dates.py::test_has_finished[thing2-False] tests/test_dates.py::test_has_finished[thing3-False] tests/test_dates.py::test_has_finished[thing4-False] tests/test_dates.py::test_has_finished[thing5-False] tests/test_dates.py::test_has_finished[thing6-False] tests/test_dates.py::test_has_finished[thing7-False] tests/test_dates.py::test_has_finished[thing8-False] tests/test_dates.py::test_has_finished[thing9-False] tests/test_dates.py::test_has_finished[thing10-False] tests/test_dates.py::test_has_finished[thing11-False] tests/test_dates.py::test_has_finished[thing12-True] tests/test_dates.py::test_has_finished[thing13-False] tests/test_dates.py::test_has_finished[thing14-False] tests/test_dates.py::test_has_finished[thing15-True] tests/test_dates.py::test_has_finished[thing16-False] tests/test_dates.py::test_has_finished[thing17-False] tests/test_dates.py::test_has_finished[thing18-True] tests/test_dates.py::test_has_finished[thing19-False] tests/test_dates.py::test_has_finished[thing20-False] tests/test_dates.py::test_is_before[thing0-True] tests/test_dates.py::test_is_before[thing1-False] tests/test_dates.py::test_is_before[thing2-False] tests/test_dates.py::test_is_before[thing3-True] tests/test_dates.py::test_is_before[thing4-False] tests/test_dates.py::test_is_after[thing0-False] tests/test_dates.py::test_is_after[thing1-False] tests/test_dates.py::test_is_after[thing2-True] tests/test_dates.py::test_is_after[thing3-False] tests/test_dates.py::test_is_after[thing4-True] tests/test_dates.py::test_is_between[thing0-False] tests/test_dates.py::test_is_between[thing1-True] tests/test_dates.py::test_is_between[thing2-True] tests/test_dates.py::test_is_between[thing3-False] tests/test_dates.py::test_is_between[thing4-True]
news/get_dates_prefix.rst regolith/dates.py
news/get_dates_prefix.rst regolith/dates.py