Duration.inDays în Dart

Dau durata întreagă exprimată într-o singură unitate: zile, ore, minute, secunde sau milisecunde (rotunjit spre zero).

Sintaxă
int get inDays
int get inHours
int get inMinutes
int get inSeconds
int get inMilliseconds

Ce face Duration.inDays

Fiecare proprietate inX transformă toată durata în unitatea respectivă și taie restul: pentru 2 ore și 30 de minute, inHours este 2, inMinutes este 150, iar inSeconds este 9000. Nu sunt componentele duratei, ci totalul.

Pentru afișări de tipul „2 ore și 30 de minute” combini o proprietate cu restul împărțirii: d.inHours și d.inMinutes % 60. Pentru precizie mai mare există și inMicroseconds. La durate negative, valorile sunt negative și rotunjite tot spre zero.

Ce returnează

Un int.

Exemple

Exemplul 1: Aceeași durată în unități diferite

void main() {
  var d = Duration(days: 1, hours: 2, minutes: 30, seconds: 15, milliseconds: 500);
  print(d.inDays);
  print(d.inHours);
  print(d.inMinutes);
  print(d.inSeconds);
  print(d.inMilliseconds);
  print(Duration(minutes: -90).inHours);
}

Rezultat

1
26
1590
95415
95415500
-1

Exemplul 2: Afișare prietenoasă

String frumos(Duration d) {
  var parti = <String>[];
  if (d.inDays > 0) parti.add('${d.inDays} zile');
  if (d.inHours % 24 > 0) parti.add('${d.inHours % 24} ore');
  if (d.inMinutes % 60 > 0) parti.add('${d.inMinutes % 60} minute');
  if (parti.isEmpty) parti.add('${d.inSeconds} secunde');
  return parti.join(', ');
}

void main() {
  print(frumos(Duration(minutes: 135)));
  print(frumos(Duration(hours: 50)));
  print(frumos(Duration(seconds: 42)));
  var drum = DateTime.utc(2026, 7, 2, 9, 15).difference(DateTime.utc(2026, 7, 1, 22, 0));
  print('Drumul Iași–Timișoara durează ${frumos(drum)}');
}

Rezultat

2 ore, 15 minute
2 zile, 2 ore
42 secunde
Drumul Iași–Timișoara durează 11 ore, 15 minute

Greșeli frecvente

  • Crezi că inMinutes dă doar minutele „rămase”: pentru 2 ore și 5 minute dă 125. Pentru restul scrie inMinutes % 60.

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.
  • Stopwatch.elapsed: Timpul măsurat de cronometru: ca Duration (elapsed) sau ca număr de milisecunde (elapsedMilliseconds).