You can have your markup as something like this
<asp:textbox id="startDate" runat="server" xmlns:asp="#unknown"></asp:textbox>
<asp:textbox id="endDate" runat="server" xmlns:asp="#unknown"></asp:textbox>
<asp:customvalidator id="cv" runat="server" validationgroup="vg" clientvalidationfunction="validateYears" errormessage="invalid date" display="None" xmlns:asp="#unknown"></asp:customvalidator>
<asp:button id="btn" runat="server" text="Click" validationgroup="vg" xmlns:asp="#unknown" />
<asp:validationsummary id="vs" runat="server" validationgroup="vg" showmessagebox="true" showsummary="false" xmlns:asp="#unknown" />
and add a js validation method
function validateYears(source, args) {
startYear = new Date(document.getElementById("startDate").value);
endYear = new Date(document.getElementById("endDate").value);
alert(endYear.getFullYear() - startYear.getFullYear() >= 20);
args.IsValid = endYear.getFullYear() - startYear.getFullYear() >= 20;
}
the function here gets the difference in years and validates for a difference of 20 years, you might also want to consider difference in months or days.
However, i would not recommed using text boxes for dates as users may use multiple ways to enter a date