package net.t7seven7t.util;
import org.bukkit.util.NumberConversions;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Utility class for parsing strings into times
*/
public class TimeUtil {
private static final Pattern TIME_PATTERN = Pattern.compile("(\\d+\\.?\\d*)(\\p{Alpha}*)");
/**
* Parses a String into a time. Value is returned in milliseconds.
*/
public static long parseString(String message) {
Matcher m = TIME_PATTERN.matcher(message);
long time = 0;
while (m.find()) {
double num = NumberConversions.toDouble(m.group(1));
String suffix = m.group(2).toLowerCase();
switch (suffix) {
case "y":
time += 3.15569e10 * num;
break;
case "w":
time += 6.048e8 * num;
break;
case "d":
time += 8.64e7 * num;
break;
case "h":
time += 3.6e6 * num;
break;
case "m":
time += 6e4 * num;
break;
case "t":
time += 50L * num;
break;
case "ms":
time += num;
break;
default:
// default to seconds
time += 1e3 * num;
break;
}
}
return time;
}
}