I am trying to compare two dates. The dates are imported from a database as strings and may or may not be null
This is my code
private String compareDates(String date1, String date2)
{
String earliestDate = null;
// date2 is null and date1 is null
// earliest = “not seen yet”
if (date2 == null && date1 == null)
{
earliestDate = "not seen yet";
}
// date2 is null and date1 is not null
// earliest = date1
if (date2 == null && date1 != null)
{
earliestDate = date1;
}
// date2 is not null and date1 is null
// earliest = date2
if (date2 != null && date1 == null)
{
earliestDate = date2;
}
// date2 is not null and date1 is not null
// compare dates
if (date2 != null && date1 != null)
{
LocalDate LDdate1 = LocalDate.parse(date1);
LocalDate LDdate2 = LocalDate.parse(date2);
if (LDdate1.isBefore(LDdate2) || LDdate1.isEqual(LDdate2))
{
earliestDate = LDdate1.toString();
}
else
{
earliestDate = LDdate2.toString();
}
}
return earliestDate;
}
This code gives me the correct output, which is the earliest date, or "not yet seen" if both dates are null, but I wondered if there is a better / more efficient way of doing things.
I imagine using a switch statement is an option but would that be better of just a different way of doing it?
The data from the database only consists of about 200 dates so it isn't dealing with a lot of data, it's just that I'm interested in writing better code