isBeforeAndUpBy method

bool isBeforeAndUpBy(
  1. DateTime b, {
  2. int? byMilliseconds,
  3. int? byMicroseconds,
  4. int? bySeconds,
  5. int? byMinutes,
  6. int? byHours,
  7. int? byDays,
})

Returns true if "this (a)" is before "b" by the given parameter.

Example:

final a = DateTime.now();
final b = DateTime.now() + 78.sec;
final check = a.isBeforeAndUpBy(b, bySeconds: 50);
print(check); // true

Implementation

bool isBeforeAndUpBy(
  DateTime b, {
  int? byMilliseconds,
  int? byMicroseconds,
  int? bySeconds,
  int? byMinutes,
  int? byHours,
  int? byDays,
}) {
  final d = b.difference(this);
  final diff = byMilliseconds.isNotNull
      ? d.inMilliseconds >= byMilliseconds!
      : byMicroseconds.isNotNull
      ? d.inMicroseconds >= byMicroseconds!
      : bySeconds.isNotNull
      ? d.inSeconds >= bySeconds!
      : byMinutes.isNotNull
      ? d.inMinutes >= byMinutes!
      : byHours.isNotNull
      ? d.inHours >= byHours!
      : byDays.isNotNull
      ? d.inDays >= byDays!
      : false;
  return isBefore(b) && diff;
}