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.