From 8ad470caf5ecfeb34e727513ec795cc850b01ac2 Mon Sep 17 00:00:00 2001 From: Christian Dywan Date: Wed, 22 Feb 2012 21:48:26 +0100 Subject: [PATCH] Distinguish the current year from the past Today a year ago shouldn't display as Today. --- panels/midori-history.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/panels/midori-history.c b/panels/midori-history.c index d2649507..90cc1c39 100644 --- a/panels/midori-history.c +++ b/panels/midori-history.c @@ -149,21 +149,21 @@ midori_history_format_date (KatzeItem *item) #if GLIB_CHECK_VERSION (2, 26, 0) GDateTime* now = g_date_time_new_now_local (); GDateTime* then = g_date_time_new_from_unix_local (day); - if (g_date_time_get_day_of_month (then) == g_date_time_get_day_of_month (now)) + age = g_date_time_get_day_of_year (now) - g_date_time_get_day_of_year (then); + if (g_date_time_get_year (now) != g_date_time_get_year (then)) + age = 999; + + if (age == 0) sdate = g_strdup (_("Today")); - else if (g_date_time_get_day_of_year (then) == g_date_time_get_day_of_year (now) - 1) + else if (age == 1) sdate = g_strdup (_("Yesterday")); + else if (age < 7) + sdate = g_strdup_printf (ngettext ("%d day ago", + "%d days ago", (gint)age), (gint)age); + else if (age == 7) + sdate = g_strdup (_("A week ago")); else - { - age = g_date_time_get_day_of_year (now) - g_date_time_get_day_of_year (then); - if (age < 7) - sdate = g_strdup_printf (ngettext ("%d day ago", - "%d days ago", (gint)age), (gint)age); - else if (age == 7) - sdate = g_strdup (_("A week ago")); - else - sdate = g_date_time_format (then, "%x"); - } + sdate = g_date_time_format (then, "%x"); #else gchar token[50]; time_t current_time; @@ -468,6 +468,10 @@ midori_history_add_item_cb (KatzeArray* array, has_today = g_date_time_get_day_of_month ( g_date_time_new_from_unix_local (day)) == g_date_time_get_day_of_month ( + g_date_time_new_from_unix_local (current_time)) + && g_date_time_get_day_of_year ( + g_date_time_new_from_unix_local (day)) + == g_date_time_get_day_of_year ( g_date_time_new_from_unix_local (current_time)); #else has_today = sokoke_days_between ((time_t*)&day, ¤t_time) == 0; -- 2.39.5