Refactoring IEnumerable I have the below code which increases the code complexity. Any way to refactor it?

I am trying to refactor the below code so that the CCM can be reduced for the code. i.e code complexity matrix.

//// TODO: Needs refactoring
    public IEnumerable&lt;ValidationResult&gt; Validate(ValidationContext validationContext)
    {
        var memberNames = new List&lt;string&gt;();

        if (this.DateOfBirth == DateTime.MaxValue)
        {
            memberNames.Add("DateOfBirth");
            yield return new ValidationResult("Invalid date, please enter your date of birth", memberNames);
        }
        else if (this.DateOfBirth == DateTime.MinValue)
        {
            memberNames.Add("DateOfBirth");
            yield return new ValidationResult("Invalid date, please enter your date of birth", memberNames);
        }

        if (!this.Age.HasValue)
        {
            memberNames.Add("DateOfBirth");
            yield return new ValidationResult("Invalid date, please enter your date of birth", memberNames);
        }
        else
        {
            if (this.Age &lt; 18 || this.Age &gt; 75)
            {
                memberNames.Add("DateOfBirth");
                yield return new ValidationResult("Age must be between 18 and 75 years", memberNames);
            }
        }

        if (!this.Gender.HasValue)
        {
            memberNames.Add("Gender");
            yield return new ValidationResult("This field is required", memberNames);
        }

        if (!(this.Age &gt;= 60))
        {
            yield break;
        }

        // similarly many more validation checks - if-else conditions
    }
I don't know the other conditions but I would do it like this:

public IEnumerable&lt;ValidationResult&gt; Validate(ValidationContext validationContext)
{
    var memberNames = new List&lt;string&gt;();

    bool isValidDateOfBirth = DateOfBirth &gt; DateTime.MinValue &amp;&amp; DateOfBirth &lt; DateTime.MaxValue &amp;&amp; Age.HasValue;
    if (!isValidDateOfBirth)
    {
        memberNames.Add("DateOfBirth");
        yield return new ValidationResult("Invalid date, please enter your date of birth", memberNames);
    }

    bool isValidAge = Age.HasValue &amp;&amp; Age.Value &gt;= 18 &amp;&amp; Age &lt;= 75;
    if (!isValidAge)
    {
        memberNames.Add("DateOfBirth");
        yield return new ValidationResult("Age must be between 18 and 75 years", memberNames);
    }

    bool isValidGender = Gender.HasValue;
    if (!isValidGender)
    {
        memberNames.Add("Gender");
        yield return new ValidationResult("This field is required", memberNames);
    }
}