aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-07-05 21:26:56 -0700
committerFuwn <[email protected]>2025-07-05 21:26:56 -0700
commitd2ba65527e5cc21bde92e44052c5bcefd4a450be (patch)
treefa43774365c655c2d22ffa3556c1e80b85bd0cf4 /src
parentfeat(cli): Support "yesterday" schedule keyword (diff)
downloadoguri-d2ba65527e5cc21bde92e44052c5bcefd4a450be.tar.xz
oguri-d2ba65527e5cc21bde92e44052c5bcefd4a450be.zip
fix(schedule): Handle cross-day relative time differences
Diffstat (limited to 'src')
-rw-r--r--src/oguri/schedule.py24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/oguri/schedule.py b/src/oguri/schedule.py
index cbd0d2a..07507a8 100644
--- a/src/oguri/schedule.py
+++ b/src/oguri/schedule.py
@@ -121,27 +121,31 @@ def relative_time(date):
now = datetime.now()
delta = now - date
- if delta.days > 365:
+ if delta.days >= 365:
years = delta.days // 365
return f"{years} year{'s' if years > 1 else ''} ago"
- elif delta.days > 30:
+ elif delta.days >= 30:
months = delta.days // 30
return f"{months} month{'s' if months > 1 else ''} ago"
- elif delta.days > 7:
+ elif delta.days >= 7:
weeks = delta.days // 7
return f"{weeks} week{'s' if weeks > 1 else ''} ago"
- elif delta.days > 1:
- return f"{delta.days} day{'s' if delta.days > 1 else ''} ago"
- elif delta.seconds > 3600:
- hours = delta.seconds // 3600
+ elif delta.days >= 1:
+ days = delta.days
+
+ return f"{days} day{'s' if days > 1 else ''} ago"
+ elif delta.total_seconds() >= 3600:
+ hours = int(delta.total_seconds() // 3600)
return f"{hours} hour{'s' if hours > 1 else ''} ago"
- elif delta.seconds > 60:
- minutes = delta.seconds // 60
+ elif delta.total_seconds() >= 60:
+ minutes = int(delta.total_seconds() // 60)
return f"{minutes} minute{'s' if minutes > 1 else ''} ago"
else:
- return f"{delta.seconds} second{'s' if delta.seconds > 1 else ''} ago"
+ seconds = int(delta.total_seconds())
+
+ return f"{seconds} second{'s' if seconds > 1 else ''} ago"