mirror of https://github.com/snachodog/mybuddy.git
Account for full date when replacing time values.
This prevents issues when the dates in question cross months or years as well as days.
This commit is contained in:
parent
76bb7b84ad
commit
4bb96b19be
|
@ -89,9 +89,11 @@ def card_sleep_day(child, date=None):
|
|||
end = timezone.localtime(instance.end)
|
||||
# Account for dates crossing midnight.
|
||||
if start.date() != date:
|
||||
start = start.replace(day=end.day, hour=0, minute=0, second=0)
|
||||
start = start.replace(year=end.year, month=end.month, day=end.day,
|
||||
hour=0, minute=0, second=0)
|
||||
elif end.date() != date:
|
||||
end = start.replace(day=start.day, hour=23, minute=59, second=59)
|
||||
end = start.replace(year=start.year, month=start.month,
|
||||
day=start.day, hour=23, minute=59, second=59)
|
||||
|
||||
total += end - start
|
||||
|
||||
|
|
|
@ -109,9 +109,11 @@ def sleep_totals(child):
|
|||
# Account for dates crossing midnight.
|
||||
if start.date() != end.date():
|
||||
totals[start.date()] += end.replace(
|
||||
day=start.day, hour=23, minute=59, second=59) - start
|
||||
year=start.year, month=start.month, day=start.day,
|
||||
hour=23, minute=59, second=59) - start
|
||||
totals[end.date()] += end - start.replace(
|
||||
day=end.day, hour=0, minute=0, second=0)
|
||||
year=end.year, month=end.month, day=end.day, hour=0, minute=0,
|
||||
second=0)
|
||||
else:
|
||||
totals[start.date()] += instance.duration
|
||||
|
||||
|
@ -193,6 +195,7 @@ def sleep_pattern(child):
|
|||
|
||||
# Adjust end_time for the current entry.
|
||||
end_time = end_time.replace(
|
||||
year=start_time.year, month=start_time.month,
|
||||
day=start_time.day, hour=23, minute=59, second=0)
|
||||
duration = end_time - start_time
|
||||
|
||||
|
|
Loading…
Reference in New Issue