Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   количество месяцев в временном отрезке :) (https://javascript.ru/forum/misc/46250-kolichestvo-mesyacev-v-vremennom-otrezke.html)

DjDiablo 03.04.2014 03:18

количество месяцев в временном отрезке :)
 
Есть начальная дата и есть конечная дата, тобишь есть временной отрезок.
Нужно узнать сколько месяцев уместилось во временном отрезке с учетом высокосных и невысокосных годов, включая месяцы начальной и конечной даты.

Придумал вот такое вот чудо :)
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));


Если кто-то предложит чего нибудь круче, тому респект :)

DjDiablo 03.04.2014 03:45

Второй подход
var day=(1000*60*60*24),
       startTime=new Date().getTime(),
       endTime=startTime+day*prompt("количество дней от сегодняшнего дня:","0"),
	   sT=new Date(startTime),
	   eT=new Date(endTime),
       m1=sT.getMonth()+(sT.getYear()*12),
       m2=eT.getMonth()+(eT.getYear()*12);
	 
       alert( (m2-m1)+1);

таки да, нихерово я туплю :D

Octane 03.04.2014 03:54

Такое требование считать именно календарные месяцы для какого то реального проекта или прост задачка? Есть понятие «финансовый год», просто делят на 30 и получают количество месяцев.

http://javascript.ru/forum/misc/3733...du-datami.html


Часовой пояс GMT +3, время: 21:25.