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

GenDateMightBeBeforeDate() private method

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