Skip to content

Commit e8bef75

Browse files
committed
handle datetime.datetime vs datetime.date correctly
1 parent 490fadc commit e8bef75

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

sciencedates/__init__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,14 @@ def datetime2yeardec(t):
169169
time distances should be preserved: If bdate-adate=ddate-cdate then
170170
dt2t(bdate)-dt2t(adate) = dt2t(ddate)-dt2t(cdate)
171171
"""
172+
172173
if isinstance(t,str):
173174
t = parse(t)
175+
elif isinstance(t, datetime.datetime):
176+
pass
177+
elif isinstance(t, datetime.date):
178+
t = datetime.datetime.combine(t, datetime.time.min)
179+
174180

175181
t = forceutc(t)
176182

@@ -179,6 +185,7 @@ def datetime2yeardec(t):
179185
year = t.year
180186
boy = datetime.datetime(year, 1, 1,tzinfo=UTC)
181187
eoy = datetime.datetime(year + 1, 1, 1, tzinfo=UTC)
188+
182189
return year + ((t - boy).total_seconds() / ((eoy - boy).total_seconds()))
183190

184191

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
setup(name='sciencedates',
88
packages=find_packages(),
9-
version = '1.3.1',
9+
version = '1.3.2',
1010
description='Date conversions used in the sciences.',
1111
long_description=open('README.rst').read(),
1212
author = 'Michael Hirsch, Ph.D.',

tests/test.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ def test_yearint(self):
1717
assert utsec==utsec2
1818

1919
def test_yeardec(self):
20-
adatetime = datetime.datetime(2013,7,2,12,0,0,tzinfo=UTC)
21-
yeardec = sd.datetime2yeardec(adatetime)
20+
t0 = datetime.datetime(2013,7,2,12,0,0,tzinfo=UTC)
21+
yeardec = sd.datetime2yeardec(t0)
2222

23-
assert_allclose(yeardec,2013.5)
24-
assert sd.yeardec2datetime(yeardec) == adatetime
23+
assert_allclose(yeardec, 2013.5)
24+
assert sd.yeardec2datetime(yeardec) == t0
2525

2626
def test_utc(self):
2727
t0 = datetime.datetime(2013,7,2,12,0,0)
@@ -36,8 +36,8 @@ def test_utc(self):
3636
assert sd.forceutc(d0) == d0
3737

3838
def test_gtd(self):
39-
adatetime = datetime.datetime(2013,7,2,12,0,0)
40-
iyd,utsec,stl= sd.datetime2gtd(adatetime,glon=42)
39+
t0 = datetime.datetime(2013,7,2,12,0,0)
40+
iyd,utsec,stl= sd.datetime2gtd(t0,glon=42)
4141

4242
assert iyd[0]==183
4343
assert_allclose(utsec[0],43200)

0 commit comments

Comments
 (0)