import java.time.Duration;
import java.util.stream.Stream;

public class Main {
	public static void main(String[] args) {
		// Test
		Stream.of(
				"30min", 
				"2h 15min", 
				"2d 15h 30min"
		).forEach(s -> System.out.println(s + " => " + toMillis(s) + "ms"));
	}

	static long toMillis(String strDuration) {
		strDuration = strDuration.replaceAll("\\s+", "").replaceFirst("(\\d+d)", "P$1T");
		strDuration = strDuration.charAt(0) != 'P' ? "PT" + strDuration.replace("min", "m")
				: strDuration.replace("min", "m");
		Duration duration = Duration.parse(strDuration);
		return duration.toMillis();
	}
}