tt_DATEADD function

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

tt_DATEADD(date, n, unit): adds/subtracts from a date; unit='D'/'M'/'Y'/'W'

Implementation

dynamic tt_DATEADD(dynamic v1, dynamic v2, dynamic v3) {
  final d = _vToDateTime(v1);
  if (d == null) return null;
  final n = varToInt(v2);
  var u = varToStr(v3).trim().toUpperCase();
  if (u.isEmpty) u = 'D';
  switch (u[0]) {
    case 'D': return d.add(Duration(days: n));
    case 'W': return d.add(Duration(days: n * 7));
    case 'M': return DateTime(d.year, d.month + n, d.day, d.hour, d.minute, d.second);
    case 'Y': return DateTime(d.year + n, d.month, d.day, d.hour, d.minute, d.second);
    default:  return d.add(Duration(days: n));
  }
}