javascript

날짜 비교 javascript

새로운 도전을 위한 한걸음 2015. 5. 10. 21:55

/**
* 날짜 비교
* firstDate: 비교 대상 날짜 첫번째 ex: 2009-04-29
* secondDate : 비교 대상 날짜 두번째 ex: 2009-04-28
* compDate('2009-04-29', '2009-04-28')
* kyt
*/
function compDate(firstDate, secondDate){
 var tmpYear=0, tmpMon=0, tmpDay=0;
 var checkMon , fTmpMon, STmpMon;
 var fDay = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
 var sDay = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
 var fTmpDate = firstDate.split("-");
 var sTmpDate = secondDate.split("-");

 var firstYear = parseInt(fTmpDate[0],10);
 var secondYear =parseInt(sTmpDate[0],10);

 fDay[1]=(((firstYear % 4 == 0) && (firstYear % 100 != 0)) || (firstYear % 400 == 0))?29:28;
 sDay[1]=(((secondYear % 4 == 0) && (secondYear % 100 != 0)) || (secondYear % 400 == 0))?29:28;
     
 tempYear =(firstYear -secondYear )*365 ;
 tmpDay = parseInt(fTmpDate[2],10) -parseInt(sTmpDate[2],10);
 fTmpMon = parseInt(fTmpDate[1],10);
 STmpMon = parseInt(sTmpDate[1],10);
 checkMon =  fTmpMon>=STmpMon ?fTmpMon:STmpMon;
 
 for(var i =0 ; i <checkMon ; i++){
  if(i < fTmpMon){
   tmpMon = tmpMon+ fDay[i];
  }
  if(i < STmpMon){
   tmpMon = tmpMon- sDay[i];
  }
 }
 return tempYear+tmpMon+tmpDay;
}