Duration duration(DateTime d) { if (millisecondsSinceEpoch > d.millisecondsSinceEpoch) { return difference(d); } return d.difference(this); }