diff method
num
diff(
- dynamic input, [
- Units units = Units.MILLISECOND,
- bool asFloat = false
])
Implementation
num diff(var input, [Units units = Units.MILLISECOND, bool asFloat = false]) {
var dateTime = _parse(input);
num diff;
var dt1 = _dateTime.millisecondsSinceEpoch;
var dt2 = dateTime.millisecondsSinceEpoch;
switch (units) {
case Units.MILLISECOND:
diff = dt1 - dt2;
break;
case Units.SECOND:
diff = (dt1 - dt2) / Duration.millisecondsPerSecond;
break;
case Units.MINUTE:
diff = (dt1 - dt2) / Duration.millisecondsPerMinute;
break;
case Units.HOUR:
diff = (dt1 - dt2) / Duration.millisecondsPerHour;
break;
case Units.DAY:
diff = (dt1 - dt2) / Duration.millisecondsPerDay;
break;
case Units.WEEK:
diff = ((dt1 - dt2) / Duration.millisecondsPerDay) / 7;
break;
case Units.MONTH:
diff = _monthDiff(_dateTime, dateTime);
break;
case Units.YEAR:
diff = _monthDiff(_dateTime, dateTime) / 12;
break;
}
if (!asFloat) return _absFloor(diff);
return diff;
}