SIL.FieldWorks.Filters.DateTimeMatcher.GenDateMightBeAfterDate C# (CSharp) Method

GenDateMightBeAfterDate() private method

private GenDateMightBeAfterDate ( GenDate gen, System.DateTime date, bool fAD ) : bool
gen GenDate
date System.DateTime
fAD bool
return bool
		private bool GenDateMightBeAfterDate(GenDate gen, DateTime date, bool fAD)
		{
			if (gen.IsAD && !fAD)		// AD > BC
				return true;
			if (!gen.IsAD && fAD)		// BC < AD
				return gen.Precision == GenDate.PrecisionType.After;
			if (!gen.IsAD && !fAD)		// Both BC
			{
				if (gen.Year > date.Year)
					return gen.Precision == GenDate.PrecisionType.After;
				else if (gen.Year < date.Year)
					return true;
			}
			if (gen.IsAD && fAD)		// Both AD
			{
				if (gen.Year < date.Year)
					return gen.Precision == GenDate.PrecisionType.After;
				else if (gen.Year > date.Year)
					return true;
			}
			if (gen.Month < date.Month)
			{
				return gen.Month == GenDate.UnknownMonth &&
					gen.Precision != GenDate.PrecisionType.Before;
			}
			else if (gen.Month > date.Month)
			{
				return true;
			}
			if (gen.Day == GenDate.UnknownDay)
				return gen.Precision != GenDate.PrecisionType.Before;
			else if (gen.Day == date.Day)
				return gen.Precision != GenDate.PrecisionType.Before;
			else
				return gen.Day > date.Day || gen.Precision == GenDate.PrecisionType.After;
		}