Search This Blog

Friday, February 13, 2009

Difference between dates in terms of date,month and year

function GetdateDiff()
{
var dt1= document.getElementById('txtdate1').value;
var dt2= document.getElementById('txtdate2').value;
var delimeter ='/';
var data1=dt1.split(delimeter);
var data2=dt2.split(delimeter);
var Tdat=data1[0]-0;
var TMonth=data1[1]-0;
var TYear=data1[2]-0;
var Odat= data2[0]-0;
var OMonth=data2[1]-0;
var OYear= data2[2]-0;
if(TYear > OYear)
{
this.Calculate(Tdat,TMonth,TYear,Odat,OMonth,OYear)
}
else if(TYear == OYear)
{

if(TMonth > OMonth)
{

              this.Calculate(Tdat,TMonth,TYear,Odat,OMonth,OYear)
}
else if(TMonth == OMonth)
{
if(Tdat >Odat)
{
 this.Calculate(Tdat,TMonth,TYear,Odat,OMonth,OYear)
}
else
{
 this.Calculate(Odat,OMonth,OYear,Tdat,TMonth,TYear)
}
}
else
{
 this.Calculate(Odat,OMonth,OYear,Tdat,TMonth,TYear)
}
}
else
{
this.Calculate(Odat,OMonth,OYear,Tdat,TMonth,TYear);
}

}
function Calculate(Tdat,TMonth,TYear,Odat,OMonth,OYear)
{
var M311="1,3,5,7,8,10,12";
var M300="4,6,9,11";
var M31=M311.split(',');
var M30 =M300.split(',');
var Fdate;
var Fmonth;
var Fyear;
if(Tdat >= Odat)
{
Fdate = Tdat - Odat;
}
else
{
for(i=0 ; i<>
{
if( TMonth ==M31[i])
{
Tdat = Tdat + 31;
break;
}
}
for(i=0; i<>
{
if( TMonth ==M30[i])
{
Tdat = Tdat + 30;
break;
}
}
if(TMonth==2)
{
  if((TYear % 4)==0)
  {
        if(Tdat > 29)
{
  alert('Invalid date')
  return;
}
Tdat=Tdat + 29;
  }
  else
  {
      if(Tdat > 28)
{
  alert('Invalid date')
  return;
}
  Tdat=Tdat+28;
  }
}
Fdate=Tdat-Odat;
TMonth = TMonth - 1;
}
if(TMonth >= OMonth)
{
Fmonth = TMonth - OMonth ;
}
else
   Fmonth = TMonth - OMonth + 12;
TYear=TYear-1;
}
Fyear=TYear - OYear;

alert('Year :'+Fyear + '\n Month :' + Fmonth + '\n Day :' + Fdate);
}

No comments:

Post a Comment