Есть начальная дата и есть конечная дата, тобишь есть временной отрезок.
Нужно узнать сколько месяцев уместилось во временном отрезке с учетом высокосных и невысокосных годов, включая месяцы начальной и конечной даты.
Придумал вот такое вот чудо 
var day=(1000*60*60*24),
       startTime=new Date().getTime(),
       endTime=startTime+day*prompt("количество дней от сегодняшнего дня:","0");
      
      function monthCount(startTime,endTime){    
        var oldMonth="",
        	mCount=0,
			day=(1000*60*60*24),
            month;
        
        while(startTime<endTime){
          month=(new Date(startTime)).getMonth();
          if( month!=oldMonth) mCount++;
          
          oldMonth=month;       
          startTime=startTime+day;  
        } 
        return mCount; 
      }
      
	  alert(monthCount(startTime,endTime));
 
Если кто-то предложит чего нибудь круче, тому респект 
