diff options
Diffstat (limited to 'libempathy/empathy-time.c')
-rw-r--r-- | libempathy/empathy-time.c | 64 |
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")); |