I think the use case is clear. It has to do with the number of genuine whole calendar months between two dates, where the end date sets where the month periods end. So there is no division by 30 or any other month-duration approximation.
You can use the MONTH( ), DAY( ), and YEAR( ) functions to take the two dates apart. You can then compute the number of months between the month of the first date and the month of the ending date, inclusive. If the day in the first month is later than the day of the ending month, decrease the result by 1.
(Probably make sure that the early date is actually not later than the ending date, too.)