Skip to content

Month-End Roll Calculator

When adding months lands on a day that doesn't exist in the target month, there are three defensible ways to handle it. Compare all three side by side for your exact dates.

Ready to apply one rule directly? See Add / Subtract Calendar Time.

Worked example

January 31, 2027 plus 1 month: the constrain rule and the preserve-end-of-month rule both land on February 28, since January 31 is itself the last day of its month. But January 30, 2027 plus 1 month constrains to February 28 too (February has no 30th), while the preserve-end-of-month rule doesn't apply at all here, since January 30 is not the last day of January (January has 31 days) -- that distinction only matters once a second addition is chained on top.

Why three rules exist

Constrain is simplest and most common. Preserve end-of-month matters for a recurring schedule that should always land on month-end (like a billing cycle), so it doesn't drift off month-end after the first non-31-day month. Reject flags the ambiguity outright rather than silently picking a rule, useful when a system needs a human to confirm the intended behavior.

Limitations

This compares three defined rules; it does not determine which rule a specific billing system, contract, or software product actually applies.

Frequently asked questions

Which rule does WhenMath use by default?
Constrain to the last valid day, unless a specific engine offers and states a different option; see the Methodology page.