Calculate Next Billing Date

I had a need to figure out the next billing date after today, based on a known start date and billing interval. Here’s the function I came up with to make it happen.

<cffunction name="getNextBilling" access="public" output="false" returntype="date" >
    <cfargument 
        name="StartDate" 
        type="date" 
        required="true" 
        hint="The date the billing started" 
    />
    <cfargument 
        name="BillingInterval" 
        type="numeric" 
        required="true" 
        hint="The number of units for the billing. For example, 
            if something is billed every 90 days, this value will be 90" 
    />
    <cfargument 
        name="IntervalUnit" 
        type="string" 
        default="d" 
        required="false" 
        hint="The date part for the billing interval. This is the 
            CF datepart, such as 'd', 'm', 'yyyy', etc. The default is 'd'." 
    />

<cfset var TimeFromStart = DateDiff(Arguments.IntervalUnit, StartDate, Now()) />

<cfreturn DateAdd(Arguments.IntervalUnit, TimeFromStart + Arguments.BillingInterval - (TimeFromStart MOD Arguments.BillingInterval), Arguments.Startdate) />

</cffunction>

Let me know if you spot a problem with the solution, or have suggestions for improvement.