Read this recent post “How to Calculate the Time Lapsed Between Two Dates & Time” for some code dealing with Date / Time math. oops I see Geoff posted that.
You may also want to look at my Date Time Tool on GitHub. It only does Date calcs not Date & Time.
One question is do you allow your “Period” to be negative? I think you should. In that case the code would need to be careful to handle, the main issue probably being time as subtracting Days is simple.
Note in Geoff’s code he used a REAL for TimeIncrement. That’s good because using a LONG could be a problem since it is limited to 2.147 billion = 248 Hours = 10.3 days.
REAL’s make me uneasy so I would use a DECIMAL(15) so the BCD library does the math perfectly. I calc 12 digits enough for 10 years of hours 1036524*8640000.