Duration.isNegative în Dart

Spune dacă durata este mai mică decât zero, de exemplu rezultatul unei diferențe cu o dată din viitor.

Sintaxă
bool get isNegative
Duration abs()

Ce face Duration.isNegative

Duratele pot fi negative: Duration(minutes: -5) sau rezultatul lui trecut.difference(viitor). isNegative returnează true pentru ele și false pentru zero sau pozitiv. Este echivalent cu d < Duration.zero.

Când îți trebuie doar mărimea intervalului, fără semn, folosește abs(). Operatorul unar -d schimbă semnul unei durate.

Ce returnează

isNegative: un bool. abs(): un Duration pozitiv.

Exemple

Exemplul 1: Durate pozitive și negative

void main() {
  var d = Duration(minutes: -5);
  print(d);
  print(d.isNegative);
  print(d.abs());
  print((-d).isNegative);
  print(Duration.zero.isNegative);
}

Rezultat

-0:05:00.000000
true
0:05:00.000000
false
false

Exemplul 2: Întârziere sau mai devreme?

void main() {
  var program = DateTime.utc(2026, 10, 19, 8, 0);
  var sosiri = {'Ana': DateTime.utc(2026, 10, 19, 7, 52), 'Mihai': DateTime.utc(2026, 10, 19, 8, 13)};
  sosiri.forEach((nume, ora) {
    var dif = ora.difference(program);
    if (dif.isNegative) {
      print('$nume a venit cu ${dif.abs().inMinutes} minute mai devreme');
    } else {
      print('$nume a întârziat ${dif.inMinutes} minute');
    }
  });
}

Rezultat

Ana a venit cu 8 minute mai devreme
Mihai a întârziat 13 minute

Greșeli frecvente

  • Afișezi direct o durată negativă (-0:08:00.000000) unui utilizator. Verifică isNegative și afișează abs() cu un text potrivit.

Comenzi înrudite

  • Duration: Un interval de timp (de exemplu 2 ore și 30 de minute), independent de calendar; Duration.zero este durata 0.
  • DateTime.difference: Calculează timpul dintre două date, ca Duration: this minus other.