количество месяцев в временном отрезке :)
Есть начальная дата и есть конечная дата, тобишь есть временной отрезок.
Нужно узнать сколько месяцев уместилось во временном отрезке с учетом высокосных и невысокосных годов, включая месяцы начальной и конечной даты. Придумал вот такое вот чудо :) 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, время: 21:25. |