fork download
  1. import java.util.Map;
  2. import java.util.NavigableMap;
  3. import java.util.TreeMap;
  4. import java.util.concurrent.TimeUnit;
  5.  
  6. class TimeFormatter {
  7.  
  8. private NavigableMap<Long,String> timeUnits = new TreeMap<>();
  9.  
  10. public TimeFormatter() {
  11. timeUnits.put(Long.MIN_VALUE, " is not a valid argument");
  12. timeUnits.put(TimeUnit.SECONDS.toSeconds(1), " seconds");
  13. timeUnits.put(TimeUnit.MINUTES.toSeconds(1), " minutes");
  14. timeUnits.put(TimeUnit.HOURS.toSeconds(1), " hours");
  15. timeUnits.put(TimeUnit.DAYS.toSeconds(1), " days");
  16. timeUnits.put(TimeUnit.DAYS.toSeconds(365), " years");
  17. timeUnits.put(TimeUnit.DAYS.toSeconds(365 * 1000000L), " million years");
  18. timeUnits.put(TimeUnit.DAYS.toSeconds(365 * 1000000L * 1000), " billion years");
  19. }
  20.  
  21. public String format(long milliseconds) {
  22. Map.Entry<Long,String> unitBelow = timeUnits.floorEntry(milliseconds);
  23.  
  24. int time = (int) (milliseconds / unitBelow.getKey());
  25. String formatted = time + unitBelow.getValue();
  26.  
  27. if(time == 1) formatted = formatted.substring(0, formatted.length()-1); //Remove plural
  28.  
  29. return formatted;
  30. }
  31. }
  32.  
  33. public class Main {
  34. public static void main(String args[]) {
  35. TimeFormatter test = new TimeFormatter();
  36. System.out.println(test.format(60 * 60 * 24 * 365 * 1000000L));
  37. }
  38. }
  39.  
  40.  
Success #stdin #stdout 0.05s 320576KB
stdin
Standard input is empty
stdout
1 million year