diff options
| author | Fuwn <[email protected]> | 2025-07-05 21:26:56 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-07-05 21:26:56 -0700 |
| commit | d2ba65527e5cc21bde92e44052c5bcefd4a450be (patch) | |
| tree | fa43774365c655c2d22ffa3556c1e80b85bd0cf4 /src | |
| parent | feat(cli): Support "yesterday" schedule keyword (diff) | |
| download | oguri-d2ba65527e5cc21bde92e44052c5bcefd4a450be.tar.xz oguri-d2ba65527e5cc21bde92e44052c5bcefd4a450be.zip | |
fix(schedule): Handle cross-day relative time differences
Diffstat (limited to 'src')
| -rw-r--r-- | src/oguri/schedule.py | 24 |
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" |