This function calculates the difference between the two Date, and Validate it,
I used this function to validate the difference between the From Date and To Date for not more then 366 days(to cover the leap year also) or less then 0,
This function is called through the CustomValidator of ASP.NET, but you can also use this without the CustomValidator.
<asp:CustomValidator runat="server" ID="custDateValidator"
ClientValidationFunction="CompareDates" Display="Dynamic"
ErrorMessage="The number of date to be included in report must be between 1 and 366">
</asp:CustomValidator>
This piece of code also depicts how we can convert the String to DateTime, because in my form I am taking the Dates from two HTML TextBoxes, which by default is String, so I had to write seperate piece of code which will convert String to DateTime.
<script language="JavaScript">
function CompareDates(source, args) {
var fromDate = new Date();
var txtFromDate = document.getElementById("txtDateFrom").value;
var aFromDate = txtFromDate.split("/");
/*Start 'Date to String' conversion block, this block is required because javascript do not provide any direct function to convert 'String to Date' */
var fdd = aFromDate[0]; //get the day part
var fmm = aFromDate[1]; //get the month part
var fyyyy = aFromDate[2]; //get the year part
fromDate.setUTCDate(fdd);
fromDate.setUTCMonth(fmm-1);
fromDate.setUTCFullYear(fyyyy);
var toDate = new Date();
var txtToDate = document.getElementById("txtDateTo").value;
var aToDate = txtToDate.split("/");
var tdd = aToDate[0]; //get the day part
var tmm = aToDate[1]; //get the month part
var tyyyy = aToDate[2]; //get the year part
toDate.setUTCDate(tdd);
toDate.setUTCMonth(tmm-1);
toDate.setUTCFullYear(tyyyy);
//end of 'String to Date' conversion block
var difference = toDate.getTime() - fromDate.getTime();
var daysDifference = Math.floor(difference/1000/60/60/24);
difference -= daysDifference*1000*60*60*24;
//if diffrence is greater then 366 then invalidate, else form is valid
if(daysDifference > 366 daysDifference < 0)
args.IsValid = false;
else
args.IsValid = true;
}
</script>
I Hope this will Help.