utils: gained compare API

This commit is contained in:
Erick Pérez Castellanos
2015-02-17 08:06:18 -05:00
parent c0acef2d19
commit 87d35dd443
2 changed files with 41 additions and 0 deletions
+37
View File
@@ -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
+4
View File
@@ -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,