aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy/empathy-time.c
diff options
context:
space:
mode:
authorWill Thompson <will.thompson@collabora.co.uk>2011-05-10 23:36:00 +0800
committerWill Thompson <will.thompson@collabora.co.uk>2011-05-12 18:34:24 +0800
commite98c7a31f74356590b5093d2108f100a661cfda1 (patch)
tree907a589292c4dffb292d0ac185fdbc13b3e0a785 /libempathy/empathy-time.c
parenta89cddec3e5faee08f61c1fc9ee67ccf243a0e1c (diff)
downloadgsoc2013-empathy-e98c7a31f74356590b5093d2108f100a661cfda1.tar
gsoc2013-empathy-e98c7a31f74356590b5093d2108f100a661cfda1.tar.gz
gsoc2013-empathy-e98c7a31f74356590b5093d2108f100a661cfda1.tar.bz2
gsoc2013-empathy-e98c7a31f74356590b5093d2108f100a661cfda1.tar.lz
gsoc2013-empathy-e98c7a31f74356590b5093d2108f100a661cfda1.tar.xz
gsoc2013-empathy-e98c7a31f74356590b5093d2108f100a661cfda1.tar.zst
gsoc2013-empathy-e98c7a31f74356590b5093d2108f100a661cfda1.zip
Add empathy_duration_to_string()
This is based on the body of empathy_time_to_string_relative(); it takes a duration in seconds, rather than a timestamp.
Diffstat (limited to 'libempathy/empathy-time.c')
-rw-r--r--libempathy/empathy-time.c64
1 files changed, 35 insertions, 29 deletions
diff --git a/libempathy/empathy-time.c b/libempathy/empathy-time.c
index f33152d97..5144fa4d8 100644
--- a/libempathy/empathy-time.c
+++ b/libempathy/empathy-time.c
@@ -81,6 +81,40 @@ empathy_time_to_string_local (gint64 t,
return result;
}
+gchar *
+empathy_duration_to_string (guint seconds)
+{
+ if (seconds < 60) {
+ return g_strdup_printf (ngettext ("%d second ago",
+ "%d seconds ago", seconds), seconds);
+ }
+ else if (seconds < (60 * 60)) {
+ seconds /= 60;
+ return g_strdup_printf (ngettext ("%d minute ago",
+ "%d minutes ago", seconds), seconds);
+ }
+ else if (seconds < (60 * 60 * 24)) {
+ seconds /= 60 * 60;
+ return g_strdup_printf (ngettext ("%d hour ago",
+ "%d hours ago", seconds), seconds);
+ }
+ else if (seconds < (60 * 60 * 24 * 7)) {
+ seconds /= 60 * 60 * 24;
+ return g_strdup_printf (ngettext ("%d day ago",
+ "%d days ago", seconds), seconds);
+ }
+ else if (seconds < (60 * 60 * 24 * 30)) {
+ seconds /= 60 * 60 * 24 * 7;
+ return g_strdup_printf (ngettext ("%d week ago",
+ "%d weeks ago", seconds), seconds);
+ }
+ else {
+ seconds /= 60 * 60 * 24 * 30;
+ return g_strdup_printf (ngettext ("%d month ago",
+ "%d months ago", seconds), seconds);
+ }
+}
+
gchar *
empathy_time_to_string_relative (gint64 t)
{
@@ -96,35 +130,7 @@ empathy_time_to_string_relative (gint64 t)
seconds = delta / G_TIME_SPAN_SECOND;
if (seconds > 0) {
- if (seconds < 60) {
- result = g_strdup_printf (ngettext ("%d second ago",
- "%d seconds ago", seconds), seconds);
- }
- else if (seconds < (60 * 60)) {
- seconds /= 60;
- result = g_strdup_printf (ngettext ("%d minute ago",
- "%d minutes ago", seconds), seconds);
- }
- else if (seconds < (60 * 60 * 24)) {
- seconds /= 60 * 60;
- result = g_strdup_printf (ngettext ("%d hour ago",
- "%d hours ago", seconds), seconds);
- }
- else if (seconds < (60 * 60 * 24 * 7)) {
- seconds /= 60 * 60 * 24;
- result = g_strdup_printf (ngettext ("%d day ago",
- "%d days ago", seconds), seconds);
- }
- else if (seconds < (60 * 60 * 24 * 30)) {
- seconds /= 60 * 60 * 24 * 7;
- result = g_strdup_printf (ngettext ("%d week ago",
- "%d weeks ago", seconds), seconds);
- }
- else {
- seconds /= 60 * 60 * 24 * 30;
- result = g_strdup_printf (ngettext ("%d month ago",
- "%d months ago", seconds), seconds);
- }
+ result = empathy_duration_to_string (seconds);
}
else {
result = g_strdup (_("in the future"));