Utiliza GOMONTH() que tiene en cuenta los dias de cada mes y los años bisiestos.
EJ:
? GOMONTH(DATE(2019,01,31),1)
? GOMONTH(DATE(2019,01,31),2)
? GOMONTH(DATE(2019,01,31),3)
Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

Estimado amigo, antes que nada gracias por disponer de tu tiempo para responder mi consulta y al mismo tiempo darte gracias por tomarte el trabajo para enviarme codigo de la consulta.Bueno amigo, te paso a responder algunas observaciones que me hiciste:
Tú insistes en hablar de una sola fecha, a la que llamas "Fecha Vencimiento".
1.- Estimado esta variable fechaVenc, yo la declaro debido a que al inicio de proceso esa variable es para iniciar el proceso y para no perderme de donde esta viniendo y al final del proceso esa variable se transforma en una fechaVenc de la cuota o mes o periodo del servicio y esta se aloja en una tabla cuyo campo es fecha_venc,2.- revisando lo que tu me enviaste tengo una duda, cual es la logica que tu utilizas para restarle un dia a esta linea de codigoM.dFinal = gomonth(M.dFecPrestamo,I )-1Lo demas lo entiendo bien pero esa parte no logro comprender para que restarle un dia a la fecha final del periodo o para mi seria fechaVenc3.- Segun lo que me enviaste esto seria el resultadoy lo que yo hice y envie antes que tu me respondieras era estoes igual pero con una optica diferente pero el resultado es el mismo, yo queria saber si la codificacion estaba bien, para realizar la modificacion en el sistema, ustedes saben que 4 ojos ven mejor que dos, aveces yo en mi caso particular he venido usando una codificacion como tu pudiste ver erronea porque mientras no tocaba febrero todo estaba bien pero cuando toco que debia mostrar febrero el sistema con mi codificacion se saltaba un mes. Bueno otra cosa en el sistema solo usamos el mes literar/año (Diciembre/2018) y la fecha de vencimiento de ese mes no asi la fecha de inicio del periodo y todo este proceso es temporal en ningun lado se esta guardando los meses adeudado, solo guardo la fecha de venc del mes que esta guardando y la cant de cuotas o meses adeudado, solo esos dos parametros, la pantalla donde yo muestro los resultado es esta que te paso, esta pantalla recoge los datos de un cursor temporal que lo paso al grid, por eso con la fecha de venc y la cant de cuotas pend genero los meses pendientes