Saturday, 16 March 2013

Calculate Date after 1year using jQuery

<head>
 <script src="App_Script/jquery-1.8.3.js" type="text/javascript"></script>
 <script src="App_Script/DateCalc.js" type="text/javascript"></script>
</head>


<body>
 <asp:TextBox ID="txtfrom" runat="server"  onchange="fnFutureDate(this,txtto)"></asp:TextBox>        <asp:TextBox ID="txtto" runat="server" Enabled="False" ForeColor="Black"></asp:TextBox>
</body>


/*

--Date Calculations--




--Function Included to age based on the date of birth--


--obj1 and obj2 are the text-boxes--

--value from obj1(textbox1) is considered and the result is thrown to obj2(textbox2)--

Note: this can be used with basic jquery file with version 1.8.3 or later
*/



--Functions is included to check a valid date in formats:dd/mm/yyyy and dd-mm-yyyy--
function IsValidDate(obj1) {
    if ($(obj1).val() !== '') {
        var date = $(obj1).val().toString();
        if ((date.indexOf('-') > 0 || date.indexOf('/') > 0) && (date.indexOf('--') < 0) && (date.indexOf('//') < 0)) {
            var sep;
            if (date.indexOf('-') > 0) {
                sep = '-';
            } else if (date.indexOf('/') > 0) {
                sep = '/';
            }
            if (fnCheckDate(date, sep)) {
                return true;
            } else {
                return false;
            }
        } else {
            alert('Please enter a valid date with "\dd-mm-yyyy" or "dd/mm/yyyy"');
        }
    }
}

function fnCheckDate(date, sep) {
    var vals = date.split(sep);
    if (vals.length == 3) {
        var dt = parseInt(vals[0], null);
        var mon = parseInt(vals[1], null);
        var year = parseInt(vals[2], null);
        var Months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
        if (dt > 0) {
            if (year > 0 && year > 1899) {
                if (year.toString().length == 4) {
                    if ((mon > 0 && mon < 13)) {
                        var leap;
                        if (year % 4 === 0) {
                            leap = true;
                        } else {
                            leap = false;
                        }
                        if (mon === 2) {
                            if (year % 4 === 0) {
                                if (dt <= 29) {
                                    return true;

                                } else {
                                    alert('invalid date');
                                }
                            } else {
                                if (dt <= 28) {
                                    return true;

                                } else {
                                    alert('invalid date');
                                    return false;
                                }
                            }
                        } else if (mon == 1 || mon == 3 || mon == 5 || mon == 8 || mon == 10 || mon == 12) {
                            if (dt <= 31) {
                                return true;

                            } else {
                                alert('invalid date');
                                return false;
                            }
                        } else if (mon == 4 || mon == 6 || mon == 7 || mon == 9 || mon == 11) {
                            if (dt <= 30) {
                                return true;

                            } else {
                                alert('invalid date');
                                return false;
                            }
                        }
                    } else {
                        alert('Please enter a month from 01 to 12');
                        return false;
                    }
                } else {
                    alert('Please enter year in YYYY format');
                    return false;
                }
            } else {
                alert('Please enter year from 1900 and YYYY format');
                return false;
            }
        } else {
            alert('Please enter a valid date');
            return false;
        }

    } else {
        alert('Please enter a valid date with dd-mm-yyyy or dd/mm/yyyy');
        return false;
    }
}

--Function Included to calculate a date after 1 year--
function fnFutureDate(obj1, obj2) {
    if (IsValidDate(obj1)) {
        var date = $(obj1).val().toString();
        var sep;
        if (date.indexOf('-') > 0) {
            sep = '-';
        } else if (date.indexOf('/') > 0) {
            sep = '/';
        }
        var vals = date.split(sep);
        var dt = vals[0];
        var mn = vals[1];
        var yr = vals[2];

        var fdt, fmn, fyr;
        fyr = parseInt(yr, null) + 1;
        var ddt = parseInt(dt, null) - 1;
        if (ddt > 0) {
            fdt = ddt;
            fmn = mn;
        } else if (ddt === 0) {
            var dmt = parseInt(mn, null);
            if (dmt === 1) {
                fmn = 12;
                fdt = 31;
                fyr = fyr - 1;
            } else if (dmt === 2 || dmt === 4 || dmt === 6 || dmt === 9 || dmt === 11) {
                fmn = dmt - 1;
                fdt = 31;
            } else if (dmt == 3) {
                fmn = dmt - 1;
                if (fyr % 4 === 0) {
                    fdt = 29;
                } else {
                    fdt = 28;
                }
            } else if (dmt === 5 || dmt === 7 || dmt === 8 || dmt === 10 || dmt === 12) {
                fmn = dmt - 1;
                fdt = 30;
            }
        }
        if (fmn.toString().length < 2) {
            fmn = '0' + fmn;
        }
        if (fdt.toString().length < 2) {
            fdt = '0' + fdt;
        }
        $(obj2).val(fdt + sep + fmn + sep + fyr);
    }
}

No comments:

Post a Comment