Skip to content

Commit

Permalink
changed businesstime_hours to return timedelta
Browse files Browse the repository at this point in the history
  • Loading branch information
seanmcfeely committed Dec 1, 2017
1 parent 9b657f6 commit 9ededd9
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 9 deletions.
8 changes: 6 additions & 2 deletions businesstime/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,10 +162,14 @@ def businesstimedelta(self, d1, d2):

return time * timedelta_direction



def businesstime_hours(self, d1, d2):
"""
Returns a datetime.timedelta of business hours between d1 and d2,
based on the length of the businessday
"""
closed_hours = datetime.timedelta(1) - self.open_hours
return self.businesstimedelta(d1, d2) - closed_hours
open_hours = self.open_hours.seconds / 3600
btd = self.businesstimedelta(d1, d2)
btd_hours = btd.seconds / 3600
return datetime.timedelta(hours=(btd.days * open_hours + btd_hours))
14 changes: 7 additions & 7 deletions businesstime/test/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,23 +268,23 @@ def test_businesstime_hours_exactly_one_day(self):
end = datetime(2014, 1, 17, 9, 0)
self.assertEqual(
self.bt.businesstime_hours(start, end),
8
timedelta(hours=8)
)

def test_businesstime_hours_one_day(self):
start = datetime(2014, 1, 16, 9, 0)
end = datetime(2014, 1, 17, 15, 0)
self.assertEqual(
self.bt.businesstime_hours(start, end),
14
timedelta(hours=14)
)

def test_businesstime_hours_one_day_reverse(self):
start = datetime(2014, 1, 17, 9, 0)
end = datetime(2014, 1, 16, 9, 0)
self.assertEqual(
self.bt.businesstime_hours(start, end),
-8
timedelta(hours=-8)
)

def test_businesstime_out_of_hours_start(self):
Expand All @@ -295,7 +295,7 @@ def test_businesstime_out_of_hours_start(self):
end = datetime(2014,8,11,17,0)
self.assertEqual(
self.bt.businesstime_hours(start,end),
8
timedelta(hours=8)
)

def test_businesstime_out_of_hours_start_end(self):
Expand All @@ -306,7 +306,7 @@ def test_businesstime_out_of_hours_start_end(self):
end = datetime(2014,8,11,23,0)
self.assertEqual(
self.bt.businesstime_hours(start,end),
8
timedelta(hours=8)
)

def test_businesstime_out_of_hours_end(self):
Expand All @@ -317,5 +317,5 @@ def test_businesstime_out_of_hours_end(self):
end = datetime(2014,8,11,23,0)
self.assertEqual(
self.bt.businesstime_hours(start,end),
16
)
timedelta(hours=16)
)

0 comments on commit 9ededd9

Please sign in to comment.