количество месяцев в временном отрезке :)
Есть начальная дата и есть конечная дата, тобишь есть временной отрезок.
Нужно узнать сколько месяцев уместилось во временном отрезке с учетом высокосных и невысокосных годов, включая месяцы начальной и конечной даты. Придумал вот такое вот чудо :)
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));
Если кто-то предложит чего нибудь круче, тому респект :) |
Второй подход
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 |
Такое требование считать именно календарные месяцы для какого то реального проекта или прост задачка? Есть понятие «финансовый год», просто делят на 30 и получают количество месяцев.
http://javascript.ru/forum/misc/3733...du-datami.html |
| Часовой пояс GMT +3, время: 23:52. |