Additionsmethode. @param unit calendar unit @param context calendar date @param amount amount to be added @param policy overflow policy @return result of addition
(
CalendarUnit unit,
PlainDate context,
long amount,
int policy
)
| 1747 | * @return result of addition |
| 1748 | */ |
| 1749 | static PlainDate doAdd( |
| 1750 | CalendarUnit unit, |
| 1751 | PlainDate context, |
| 1752 | long amount, |
| 1753 | int policy |
| 1754 | ) { |
| 1755 | |
| 1756 | switch (unit) { |
| 1757 | case MILLENNIA: |
| 1758 | return doAdd( |
| 1759 | CalendarUnit.MONTHS, |
| 1760 | context, |
| 1761 | MathUtils.safeMultiply(amount, 12 * 1000), |
| 1762 | policy); |
| 1763 | case CENTURIES: |
| 1764 | return doAdd( |
| 1765 | CalendarUnit.MONTHS, |
| 1766 | context, |
| 1767 | MathUtils.safeMultiply(amount, 12 * 100), |
| 1768 | policy); |
| 1769 | case DECADES: |
| 1770 | return doAdd( |
| 1771 | CalendarUnit.MONTHS, |
| 1772 | context, |
| 1773 | MathUtils.safeMultiply(amount, 12 * 10), |
| 1774 | policy); |
| 1775 | case YEARS: |
| 1776 | return doAdd( |
| 1777 | CalendarUnit.MONTHS, |
| 1778 | context, |
| 1779 | MathUtils.safeMultiply(amount, 12), |
| 1780 | policy); |
| 1781 | case QUARTERS: |
| 1782 | return doAdd( |
| 1783 | CalendarUnit.MONTHS, |
| 1784 | context, |
| 1785 | MathUtils.safeMultiply(amount, 3), |
| 1786 | policy); |
| 1787 | case MONTHS: |
| 1788 | long months = |
| 1789 | MathUtils.safeAdd(context.getEpochMonths(), amount); |
| 1790 | return PlainDate.fromEpochMonths( |
| 1791 | context, |
| 1792 | months, |
| 1793 | context.dayOfMonth, |
| 1794 | policy); |
| 1795 | case WEEKS: |
| 1796 | return doAdd( |
| 1797 | CalendarUnit.DAYS, |
| 1798 | context, |
| 1799 | MathUtils.safeMultiply(amount, 7), |
| 1800 | policy); |
| 1801 | case DAYS: |
| 1802 | return addDays(context, amount); |
| 1803 | default: |
| 1804 | throw new UnsupportedOperationException(unit.name()); |
| 1805 | } |
| 1806 |
no test coverage detected