src/org/kocakosm/pitaya/time/Duration.java
public static Duration of(Duration... durations)
	{
		if (durations.length == 0) {
			return new Duration(0L);
		}
		long ms = durations[0].milliseconds;
		for (int i = 1; i < durations.length; i++) {
			ms = safeAdd(ms, durations[i].milliseconds);
		}
		return new Duration(ms);
	}
public static Duration of(Duration... durations)
	{
		if (durations.length == 0) {
			return new Duration(0L);
		}
		long ms = durations[0].milliseconds;
		for (int i = 1; i < durations.length; i++) {
			ms = safeAdd(ms, durations[i].milliseconds);
		}
		return new Duration(ms);
	}
Creates a new {@code Duration} instance by summing all the given
{@code Duration}s' values.

@param durations the {@code Duration}s to sum.

@return the created {@code Duration}.

@throws NullPointerException if {@code durations} is {@code null} or
if it contains {@code null} reference.
@throws ArithmeticException if the resulting duration is too large.