tt_DATEDIFF function

dynamic tt_DATEDIFF(
  1. dynamic v1,
  2. dynamic v2,
  3. dynamic v3
)

tt_DATEDIFF(date1, date2, unit): date difference

Implementation

dynamic tt_DATEDIFF(dynamic v1, dynamic v2, dynamic v3) {
  final d1 = _vToDateTime(v1);
  final d2 = _vToDateTime(v2);
  if (d1 == null || d2 == null) return 0;
  var u = varToStr(v3).trim().toUpperCase();
  if (u.isEmpty) u = 'D';
  switch (u[0]) {
    case 'D': return d2.difference(d1).inDays;
    case 'W': return d2.difference(d1).inDays ~/ 7;
    case 'M': return (d2.year - d1.year) * 12 + (d2.month - d1.month);
    case 'Y': return d2.year - d1.year;
    default:  return d2.difference(d1).inDays;
  }
}