You say that you are not really interested in the day that the contract ends. Therefore we could calculate all end dates as the first of the month? If so, Contract End =
Date ( Month(Contract Start) + Contract Length; 1 ; Year(Contract start) )
...the result is a date.
If you want the end date to be the last day in the month, use this:
Date ( Month(Contract Start) + Contract Length + 1; 0 ; Year(Contract start) )