yo para eso inventaria un tipo de unidad nueva llamada 'monthstamp', para eso convertiria los timestamp en fechas reales
---------------------------------
int monthstamp1, monthstamp2, diferencia;
timestamp time1, time2;
//year(valor) devuelve el año del timestamp 'valor'
//month(valor) devuelve el numero de mes del timestamp 'valor'
monthstamp1=(year(time1)*12)+month(time1);
monthstamp2=(year(time2)*12)+month(time2);
diferencia=monthstamp2-monthstamp1;
if(day(time1)>=day(time2)) {
//si ademas dias(time1) es posterior al tiempo de dias de time2
//significa que queda menos de un mes para que cumpla ese dia
diferencia=diferencia-1;
}
----------------------------------
esa seria la forma bruta, la forma 'optima' seria esta:
------------------------------
int diferencia,temp;
timestamp time1, time2;
temp=time2-time1;
diferencia=((year(temp)-1970)*12)+month(temp);
---------------------------
listo, tu veras como los dos algoritmos te dan el mismo resultado.