summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: d43c07b)
raw | patch | inline | side by side (parent: d43c07b)
author | Jeff King <peff@peff.net> | |
Tue, 24 Feb 2009 05:42:16 +0000 (00:42 -0500) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 25 Feb 2009 08:44:43 +0000 (00:44 -0800) |
Previously, for dates older than 12 months we fell back to just giving the
absolute time. This can be a bit jarring when reading a list of times.
Instead, let's switch to "Y years, M months" for five years, and then just
"Y years" after that.
No particular reason on the 5 year cutoff except that it seemed reasonable
to me.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
absolute time. This can be a bit jarring when reading a list of times.
Instead, let's switch to "Y years, M months" for five years, and then just
"Y years" after that.
No particular reason on the 5 year cutoff except that it seemed reasonable
to me.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
date.c | patch | blob | history |
index d75dff42405404ec86820a534620c1ba68cd9116..1165d30adfa783f7cbaa871e38a1370f9f9c4996 100644 (file)
--- a/date.c
+++ b/date.c
snprintf(timebuf, sizeof(timebuf), "%lu months ago", (diff + 15) / 30);
return timebuf;
}
- /* Else fall back on absolute format.. */
+ /* Give years and months for 5 years or so */
+ if (diff < 1825) {
+ unsigned long years = (diff + 183) / 365;
+ unsigned long months = (diff % 365 + 15) / 30;
+ int n;
+ n = snprintf(timebuf, sizeof(timebuf), "%lu year%s",
+ years, (years > 1 ? "s" : ""));
+ if (months)
+ snprintf(timebuf + n, sizeof(timebuf) - n,
+ ", %lu month%s ago",
+ months, (months > 1 ? "s" : ""));
+ else
+ snprintf(timebuf + n, sizeof(timebuf) - n,
+ " ago");
+ return timebuf;
+ }
+ /* Otherwise, just years. Centuries is probably overkill. */
+ snprintf(timebuf, sizeof(timebuf), "%lu years ago", (diff + 183) / 365);
+ return timebuf;
}
if (mode == DATE_LOCAL)