parseDuration function

int? parseDuration(
  1. String? duration
)

Parses duration in seconds.

Implementation

int? parseDuration(String? duration) {
  if (duration == null || duration.trim().isEmpty) return null;
  final durationSplit = duration.trim().split(':');
  if (durationSplit.any((d) => int.tryParse(d.replaceAll(',', '')) == null)) {
    return null;
  }

  final multipliers = [1, 60, 3600];
  final seconds = <int>[];
  for (var i = 0; i < durationSplit.length; i++) {
    final value = int.parse(durationSplit[durationSplit.length - 1 - i]);
    seconds.add(value * multipliers[i]);
  }
  return seconds.reduce((a, b) => a + b);
}