ShowControl/src/main/java/nl/sbdeveloper/showcontrol/utils/TimeUtil.java
2023-01-09 20:15:56 +01:00

59 lines
No EOL
1.9 KiB
Java

package nl.sbdeveloper.showcontrol.utils;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.TimeUnit;
/**
* Source from:
* https://github.com/Mindgamesnl/OpenAudioMc/blob/master/plugin/src/main/java/com/craftmend/openaudiomc/spigot/modules/show/util/TimeParser.java
*/
public class TimeUtil {
public static Long toMilis(String input) {
long time = 0L;
// ITS A TIMECODE
if (input.contains(":")) {
return LocalTime.parse(input, DateTimeFormatter.ofPattern("HH:mm:ss")).toSecondOfDay() * 1000L;
}
input = input.toLowerCase() + "-";
String[] milisSplit = input.split("ms");
if (isValid(milisSplit)) {
time += Long.parseLong(milisSplit[0]);
return time;
}
String[] secondsSplit = input.split("s");
if (isValid(secondsSplit)) {
time += Math.round(Double.parseDouble(secondsSplit[0]) * 1000);
return time;
}
String[] minutesSplit = input.split("m");
if (isValid(minutesSplit)) {
time += Math.round(Double.parseDouble(minutesSplit[0]) * 60000);
return time;
}
String[] tickSplit = input.split("t");
if (isValid(tickSplit)) {
time += Math.round(Integer.parseInt(tickSplit[0]) * 50);
return time;
}
return time;
}
private static boolean isValid(String[] array) {
return array.length > 1 && array[0].length() > 0;
}
public static Object makeReadable(Long time) {
return String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(time),
TimeUnit.MILLISECONDS.toMinutes(time) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(time)),
TimeUnit.MILLISECONDS.toSeconds(time) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(time)));
}
}