summary refs log tree commit diff
path: root/bin
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2022-10-05 23:36:30 -0400
committerJune McEnroe <june@causal.agency>2022-10-05 23:36:30 -0400
commitb8e33ff1f3231aa5dd84b27fc53c8bf4ace2da90 (patch)
tree67300b657124118769e31be7a5c445c7a578abb7 /bin
parentUpdate "Care" with more on electrolysis (diff)
downloadsrc-b8e33ff1f3231aa5dd84b27fc53c8bf4ace2da90.tar.gz
src-b8e33ff1f3231aa5dd84b27fc53c8bf4ace2da90.zip
Fix same month, different day diffs
This fixes it expressing a 355d difference, for example, as 1y -1m
20d. Just switching to <= would make it express 365d as 12m rather
than 1y.
Diffstat (limited to 'bin')
-rw-r--r--bin/when.y5
1 files changed, 4 insertions, 1 deletions
diff --git a/bin/when.y b/bin/when.y
index c94c5514..46651ebb 100644
--- a/bin/when.y
+++ b/bin/when.y
@@ -121,7 +121,10 @@ static struct tm dateDiff(struct tm a, struct tm b) {
 		.tm_mon = a.tm_mon - b.tm_mon,
 		.tm_mday = a.tm_mday - b.tm_mday,
 	};
-	if (a.tm_mon < b.tm_mon) {
+	if (
+		a.tm_mon < b.tm_mon ||
+		(a.tm_mon == b.tm_mon && a.tm_mday < b.tm_mday)
+	) {
 		diff.tm_year--;
 		diff.tm_mon += 12;
 	}