Add support to compare a date against a date time

This commit is contained in:
WimVelzeboer
2021-12-13 18:21:57 +00:00
parent 1497b5fec7
commit 24ba673d8e
2 changed files with 29 additions and 2 deletions
@@ -65,6 +65,10 @@ public with sharing class fflib_Comparator
return compare((Date) object1, (Date) object2);
else if (object1 instanceof Datetime && object2 instanceof Datetime)
return compare((Datetime) object1, (Datetime) object2);
else if (object1 instanceof Datetime && object2 instanceof Date)
return compare((Datetime) object1, (Date) object2);
else if (object1 instanceof Date && object2 instanceof Datetime)
return compare((Date) object1, (Datetime) object2);
else if (object1 instanceof Integer && object2 instanceof Integer)
return compare((Integer) object1, (Integer) object2);
else if (object1 instanceof Long && object2 instanceof Long)
@@ -101,6 +105,20 @@ public with sharing class fflib_Comparator
else return 1;
}
public static Integer compare(Datetime d1, Date d2)
{
if (d1 < d2) return -1;
else if (d1 == d2) return 0;
else return 1;
}
public static Integer compare(Date d1, Datetime d2)
{
if (d1 < d2) return -1;
else if (d1 == d2) return 0;
else return 1;
}
public static Integer compare(Double d1, Double d2)
{
if (d1 < d2) return -1;
@@ -85,8 +85,17 @@ private with sharing class fflib_ComparatorTest
private static testmethod void testDatetime()
{
Object d1 = datetime.newInstance(2008, 12, 1, 12, 30, 1);
Object d2 = datetime.newInstance(2008, 12, 1, 12, 30, 2);
Object d1 = Datetime.newInstance(2010, 01, 1, 12, 30, 0);
Object d2 = Datetime.newInstance(2020, 01, 1, 12, 30, 0);
assertCompareDatetime(d1, d2, -1);
assertCompareDatetime(d1, d1, 0);
assertCompareDatetime(d2, d1, 1);
}
private static testmethod void testDatetimeToDate()
{
Object d1 = Date.newInstance(2010, 01, 1);
Object d2 = Datetime.newInstance(2020, 01, 1, 12, 30, 0);
assertCompareDatetime(d1, d2, -1);
assertCompareDatetime(d1, d1, 0);
assertCompareDatetime(d2, d1, 1);