Search This Blog

Friday, July 22, 2011

Date difference in Javascript using asp.net and Calculating Duration Between Two Dates in Years, Months and Days

Use below javascript function to

1) validate the date difference in asp.net
2) difference (number of days, months, years) between two dates.


function validate(ArrivalDate, DepartureDate )
{
var ArrivalDtValue = "15/02/2011"; // ArrivalDate
var DepartureDtValue = "16/02/2011"; // DepartureDate

var currentTime = new Date();
var month = currentTime.getMonth();
var day = currentTime.getDate();
var year = currentTime.getFullYear();
var currentDt = day + "/" + month + "/" + year;

var ArrDt = getDateObject(ArrivalDtValue, "/");
var DeparDt = getDateObject(DepartureDtValue, "/");
var CurDt = new Date();

//Total time for one day
var one_day = 1000 * 60 * 60 * 24;
//Here we need to split the inputed dates to convert them into standard format
//for furter execution
var x = ArrivalDtValue.split("/");
var y = DepartureDtValue.split("/");
//date format(Fullyear,month,date)
var ArrivalDate = new Date(x[2], (x[1] - 1), x[0]);
var DepartureDate = new Date(y[2], (y[1] - 1), y[0]);
var CurrentDate = new Date(year, month, day);
var month1 = x[1] - 1;
var month2 = y[1] - 1;

//Calculate difference between the two dates, and convert to days
var ArrivaldiffDays = Math.abs((CurrentDate.getTime() - ArrivalDate.getTime()) / (one_day));
var DeparturediffDays = Math.abs((CurrentDate.getTime() - DepartureDate.getTime()) / (one_day));


if (ArrDt > DeparDt) {
        alert("Departure date should not be less than Arrival date");
        return false;
}
else if (ArrivalDtValue == DepartureDtValue) {
      alert("Arrival date and Departure date should not be same");
      return false;
}
else if (ArrDt < CurrentDate)
{
      alert("Arrival date should not be less than current date");
      return false;
}
else if (DeparDt < CurrentDate)
{
     alert("Departure date should not be less than current date");
     return false;
}
else
{
     return true;
}
}


function getDateObject(dateString, dateSeperator) {
//This function return a date object after accepting
//a date string ans dateseparator as arguments
var curValue = dateString;
var sepChar = dateSeperator;
var curPos = 0;
var cDate, cMonth, cYear;

//extract day portion
curPos = dateString.indexOf(sepChar);
cDate = dateString.substring(0, curPos);

//extract month portion
endPos = dateString.indexOf(sepChar, curPos + 1);
cMonth = dateString.substring(curPos + 1, endPos);

//extract year portion
curPos = endPos;
endPos = curPos + 5;
cYear = curValue.substring(curPos + 1, endPos);

//Create Date Object
dtObject = new Date(cYear, cMonth - 1, cDate);
//alert(dtObject);
return dtObject;
}





...............................................................................................................
For the date validation (dd/mm/yyyy format) you can refer below site

http://challadotnetfaq.blogspot.com/2011/07/date-validation-using-javascript-in.html



Date validation using Javascript in asp.net

function validate() {
var oInput1 = document.getElementById("datepicker_Control");

if (isValidDate(oInput1))
{
//proceed code
}
else
{
// alert message
}

}



function isValidDate(field) {
var checkstr = "0123456789";
var DateField = field;
var Datevalue = "";
var DateTemp = "";
var seperator = ",";
var day;
var month;
var year;
var leap = 0;
var err = 0;
var i;
err = 0;
DateValue = DateField;
/* Delete all chars except 0..9 */
for (i = 0; i < DateValue.length; i++) { if (checkstr.indexOf(DateValue.substr(i, 1)) >= 0) {
DateTemp = DateTemp + DateValue.substr(i, 1);
}
}
DateValue = DateTemp;
/* Always change date to 8 digits - string*/
/* if year is entered as 2-digit / always assume 20xx */
if (DateValue.length == 6) {
DateValue = DateValue.substr(0, 4) + '20' + DateValue.substr(4, 2);
}
if (DateValue.length != 8) {
err = 19;
}
/* year is wrong if year = 0000 */
year = DateValue.substr(4, 4);
if (year == 0) {
err = 20;
}
/* Validation of month*/
month = DateValue.substr(2, 2);
if ((month < 1) || (month > 12)) {
err = 21;
}
/* Validation of day*/
day = DateValue.substr(0, 2);
if (day < 1) { err = 22; } /* Validation leap-year / february / day */ if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) { leap = 1; } if ((month == 2) && (leap == 1) && (day > 29)) {
err = 23;
}
if ((month == 2) && (leap != 1) && (day > 28)) {
err = 24;
}
/* Validation of other months */
if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
err = 25;
}
if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
err = 26;
}
/* if 00 ist entered, no error, deleting the entry */
if ((day == 0) && (month == 0) && (year == 00)) {
err = 0; day = ""; month = ""; year = ""; seperator = "";
}
/* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
if (err == 0) {
DateField.value = day + seperator + month + seperator + year;
}
/* Error-message if err != 0 */
else {
return false;
}
return true;
}

Popular Posts