MCPcopy Create free account
hub / github.com/MenoData/Time4J / doAdd

Method doAdd

base/src/main/java/net/time4j/PlainDate.java:1749–1807  ·  view source on GitHub ↗

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
    )

Source from the content-addressed store, hash-verified

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

Callers 3

addToMethod · 0.95
monthDeltaMethod · 0.95
plusMethod · 0.95

Calls 6

safeMultiplyMethod · 0.95
safeAddMethod · 0.95
fromEpochMonthsMethod · 0.95
addDaysMethod · 0.95
getEpochMonthsMethod · 0.80
nameMethod · 0.65

Tested by

no test coverage detected