fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.lang.*;
  4. import java.time.Duration;
  5.  
  6. /* Name of the class has to be "Main" only if the class is public. */
  7. class Ideone
  8. {
  9. private static void printTest(String durationString) {
  10. Duration dur = toDuration(durationString);
  11. long minutes = dur.toMinutes();
  12. System.out.format("%-15s %-7s%5d%n", durationString, dur, minutes);
  13. }
  14.  
  15. private static Duration toDuration(String durationString) {
  16. durationString = durationString.replaceAll(" days?", "D");
  17. durationString = durationString.replaceAll(" hours?", "H");
  18. durationString = durationString.replaceAll(" mins?", "M");
  19. durationString = durationString.replace(" ", "");
  20. if (durationString.contains("D")) {
  21. durationString = durationString.replaceFirst("\\d+D", "P$0T");
  22. if (durationString.endsWith("T")) {
  23. // remove T
  24. durationString = durationString.substring(0, durationString.length() - 1);
  25. }
  26. } else {
  27. durationString = "PT" + durationString;
  28. }
  29. return Duration.parse(durationString);
  30. }
  31.  
  32. public static void main(String[] args) {
  33. printTest("3 hours 23 mins");
  34. printTest("2 hours 56 mins");
  35. printTest("1 hour 1 min");
  36. printTest("1 day 18 hours");
  37. printTest("2 days");
  38. }
  39.  
  40. }
Success #stdin #stdout 0.1s 28312KB
stdin
Standard input is empty
stdout
3 hours 23 mins PT3H23M  203
2 hours 56 mins PT2H56M  176
1 hour 1 min    PT1H1M    61
1 day 18 hours  PT42H   2520
2 days          PT48H   2880