11

I'm looking for a method to convert minutes into hours and minutes. I'm using the intl package through DateFormat but this requires both hours and minutes so it won't do.

If I have 100 minutes, I would like this to be converted to 01:40. Thanks

Jake
  • 1,906
  • 9
  • 32
  • 60

2 Answers2

23

Does this work?

String durationToString(int minutes) {
    var d = Duration(minutes:minutes);
    List<String> parts = d.toString().split(':');
    return '${parts[0].padLeft(2, '0')}:${parts[1].padLeft(2, '0')}';
}

print(durationToString(100)); //returns 01:40
socasanta
  • 1,532
  • 9
  • 15
  • I need to be able to pass a variable to this and I can't change `d` to `int` from `Duration` as I'm getting `Only valid value is 0:1` – Jake Jul 07 '19 at 00:58
  • @Jake I updated it to be more in line with original ask. Hope it helps, otherwise I might need more info to understand the question. – socasanta Jul 07 '19 at 01:32
13

This will work for you


String getTimeString(int value) {
  final int hour = value ~/ 60;
  final int minutes = value % 60;
  return '${hour.toString().padLeft(2, "0")}:${minutes.toString().padLeft(2, "0")}';
}
Ajil O.
  • 6,562
  • 5
  • 40
  • 72