[empathy/more-contact-info: 1/7] Add empathy_duration_to_string()



commit e98c7a31f74356590b5093d2108f100a661cfda1
Author: Will Thompson <will thompson collabora co uk>
Date:   Tue May 10 16:36:00 2011 +0100

    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.

 libempathy/empathy-time.c |   64 ++++++++++++++++++++++++--------------------
 libempathy/empathy-time.h |    1 +
 2 files changed, 36 insertions(+), 29 deletions(-)
---
diff --git a/libempathy/empathy-time.c b/libempathy/empathy-time.c
index f33152d..5144fa4 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"));
diff --git a/libempathy/empathy-time.h b/libempathy/empathy-time.h
index 7fac482..3a22ade 100644
--- a/libempathy/empathy-time.h
+++ b/libempathy/empathy-time.h
@@ -45,6 +45,7 @@ gchar  *empathy_time_to_string_utc   (gint64       t,
 gchar  *empathy_time_to_string_local (gint64       t,
 				      const gchar *format);
 gchar  *empathy_time_to_string_relative (gint64 t);
+gchar *empathy_duration_to_string (guint seconds);
 
 G_END_DECLS
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]