Sayaçlara ayları fazla almıyorlar anlaşılan. Aslında bunun bir mantığı var sanırım. Aylar 28, 29, 30 ve 31 gün olabiliyor duruma göre. Diyelim bugün 16 Mart olsun. Sayım yapacağımız gelecekteki tarih 15 Mayıs olsun. Aradaki komple ay Nisan. Şimdi bunu nasıl yorumlayacağız 1 ay ve 30 gün mü yoksa 2 ay sıfır gün mü. Kestirmeden her ay 30 gün kabul edilebilir ama bazı durumlarda hata verecek. Örneğin 16 Ocak ve 15 Mart (Şubat 28 olsun diyelim). Toplam gün sayısı 58. Aylar 30 kabul edilirse 1 ay 28 gün denmesi gerekli ama ilk örnekte gene bir ayın 16'sı gelecek ayın 15'i vardı ve 2 ay denebiliyordu vs. En iyisi şu olabilir. Diyelim bugün ayın 17'si sıra ile gelecekteki her ayın 17 olunca bir ay geçmiş kabul edilebilir. Ya da bugün 30 Ocak. Şubatta 30 yok o nedenle 28 veya 29 olunca bir ay geçmiş olacak vs. Biraz karışık bir durum. Artık yılları, ayların farklı gün sayılarını vs. hesaba katmak gerekecek sanki. Basitçe gün sayısını 30'a bölmek yeterli değil gibi. Özellikle aralık uzun yıllarla yayılıyorsa 31 gün olan aylar hesabı ciddi bozacak sanırım. Ayları hiç karıştırmamak da bir alternatif.

İnternette şunu buldum:
function Noofmonths(date1, date2) {
    var Nomonths;
    Nomonths= (date2.getFullYear() - date1.getFullYear()) * 12;
    Nomonths-= date1.getMonth() + 1;
    Nomonths+= date2.getMonth() +1; // we should add + 1 to get correct month number
    return Nomonths <= 0 ? 0 : Nomonths;
}
Bunu denemedim gerçi ama aradaki tam ayları sayıyor anlaşılan. Modifiye etmek gerekebilir. Elemanlar yazmışlar zaten "iki tarih arasındaki ay sayısı epey yoruma açık bir konu" diye.