private string canTheyMeet()
{
Person pe1 = (Person)comboboxPerson1.SelectedItem;
Person pe2 = (Person)comboboxPerson2.SelectedItem;
switchPerson(pe1, pe2);
int help = 0;
string returnValue="";
if (pe1.Birth.Year != 0)
{
help += 1;
}
if (pe1.Death.Year != 0)
{
help += 2;
}
if (pe2.Birth.Year != 0)
{
help += 4;
}
if (pe2.Death.Year != 0)
{
help += 8;
}
switch (help)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 8:
case 12:
{
returnValue = "Maybe, can not decide !!!";
break;
}
case 5:
{
if (Math.Abs(pe1.Birth.Year - pe2.Birth.Year) < lifeLong)
{
returnValue="Yes, they can meet.";
}
else returnValue="No, they can not meet;";
break;
}
case 6:
{
if (Math.Abs(pe1.Death.Year - pe2.Birth.Year) < lifeLong)
{
returnValue = "Yes, they can meet.";
}
else returnValue = "No, they can not meet;";
break;
}
case 7:
{
if (((pe1.Birth.Year-lifeLong) <= pe2.Birth.Year) && (pe2.Birth.Year <= pe1.Death.Year))
returnValue="Yes, they can meet.";
else returnValue="No, they can not meet;";
break;
}
case 9:
{
if(pe1.Birth.Year+lifeLong <= pe2.Death.Year)
returnValue="Yes, they can meet.";
else returnValue="No, they can not meet;";
break;
}
case 10:
{
if (Math.Abs(pe1.Death.Year - pe2.Death.Year) < lifeLong)
{
returnValue = "Yes, they can meet.";
}
else returnValue = "No, they can not meet.";
break;
}
case 11:
{
if ((pe1.Birth.Year <= pe2.Death.Year) && (pe2.Death.Year <= pe1.Death.Year+lifeLong))
returnValue = "Yes, they can meet.";
else returnValue = "No, they can not meet.";
break;
}
case 13:
{
if (((pe2.Birth.Year-lifeLong) <= pe1.Birth.Year) && (pe1.Birth.Year <= pe2.Death.Year))
returnValue = "Yes, they can meet.";
else returnValue = "No, they can not meet.";
break;
}
case 14:
{
if ((pe2.Birth.Year <= pe1.Death.Year) && (pe1.Death.Year <= (pe2.Death.Year+lifeLong)))
returnValue = "Yes, they can meet.";
else returnValue = "No, they can not meet.";
break;
}
case 15:
{
if (calculateMeet(pe1, pe2))
{
returnValue = "Yes, they can meet.";
}
else returnValue = "No, they can not meet.";
break;
}
default:
{
returnValue = "Something went wrong";
break;
}
}
return returnValue;
}