[gnome-calendar] utils: gained compare API
- From: Erick Pérez Castellanos <erickpc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar] utils: gained compare API
- Date: Tue, 17 Feb 2015 13:17:04 +0000 (UTC)
commit 87d35dd4432da6a5df2fd369736c5728593c9635
Author: Erick Pérez Castellanos <erick red gmail com>
Date: Mon Feb 16 17:13:02 2015 -0500
utils: gained compare API
src/gcal-utils.c | 37 +++++++++++++++++++++++++++++++++++++
src/gcal-utils.h | 4 ++++
2 files changed, 41 insertions(+), 0 deletions(-)
---
diff --git a/src/gcal-utils.c b/src/gcal-utils.c
index e48979a..8a63542 100644
--- a/src/gcal-utils.c
+++ b/src/gcal-utils.c
@@ -409,6 +409,43 @@ icaltime_compare_date (const icaltimetype *date1,
time_day_of_year (date2->day, date2->month - 1, date2->year);
}
+gint
+icaltime_compare_with_current (const icaltimetype *date1,
+ const icaltimetype *date2,
+ time_t *current_time_t)
+{
+ gint result;
+
+ time_t start1, start2, diff1, diff2;
+ start1 = icaltime_as_timet_with_zone (*date1, date1->zone != NULL ? date1->zone :
e_cal_util_get_system_timezone ());
+ start2 = icaltime_as_timet_with_zone (*date2, date2->zone != NULL ? date2->zone :
e_cal_util_get_system_timezone ());
+ diff1 = start1 - *current_time_t;
+ diff2 = start2 - *current_time_t;
+
+ if (diff1 == diff2)
+ {
+ result = 0;
+ }
+ else
+ {
+ if (diff1 == 0)
+ result = -1;
+ else if (diff2 == 0)
+ result = 1;
+
+ if (diff1 > 0 && diff2 < 0)
+ result = -1;
+ else if (diff2 > 0 && diff1 < 0)
+ result = 1;
+ else if (diff1 < 0 && diff2 < 0)
+ result = ABS (diff1) - ABS (diff2);
+ else if (diff1 > 0 && diff2 > 0)
+ result = diff1 - diff2;
+ }
+
+ return result;
+}
+
/* Function to do a last minute fixup of the AM/PM stuff if the locale
* and gettext haven't done it right. Most English speaking countries
* except the USA use the 24 hour clock (UK, Australia etc). However
diff --git a/src/gcal-utils.h b/src/gcal-utils.h
index 72d810c..08f58f3 100644
--- a/src/gcal-utils.h
+++ b/src/gcal-utils.h
@@ -83,6 +83,10 @@ ECalComponent* build_component_from_details (const gchar
gint icaltime_compare_date (const icaltimetype *date1,
const icaltimetype *date2);
+gint icaltime_compare_with_current (const icaltimetype *date1,
+ const icaltimetype *date2,
+ time_t *current_time_t);
+
/* code brought from evolution */
gsize e_strftime_fix_am_pm (gchar *str,
gsize max,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]