[Feature] Get duration from string in format of '00 hr 00 min 00 sec', in any combination (#215)

This commit is contained in:
Jace 2022-11-19 18:53:34 +08:00 committed by GitHub
parent 263f74fb9c
commit a8f3d18c2e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1153,6 +1153,27 @@ fun getDurationFromString(input: String?): Int? {
return values[1].toIntOrNull()
}
}
Regex("(\\s\\d+\\shr)|(\\s\\d+\\shour)|(\\s\\d+\\smin)|(\\s\\d+\\ssec)").findAll(input).let { values ->
var seconds = 0
values.forEach {
val time_text = it.value
if (time_text.isNotBlank()) {
val time = time_text.filter { s -> s.isDigit() }.trim().toInt()
val scale = time_text.filter { s -> !s.isDigit() }.trim()
//println("Scale: $scale")
val timeval = when (scale) {
"hr", "hour" -> time * 60 * 60
"min" -> time * 60
"sec" -> time
else -> 0
}
seconds += timeval
}
}
if (seconds > 0) {
return seconds / 60
}
}
return null
}