[empathy/more-contact-info: 1/7] Add empathy_duration_to_string()
- From: Will Thompson <wjt src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy/more-contact-info: 1/7] Add empathy_duration_to_string()
- Date: Thu, 12 May 2011 12:48:38 +0000 (UTC)
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]