Untitled
unknown
plain_text
2 years ago
5.3 kB
8
Indexable
public static String solution(String input){ long sec = Long.parseLong(input); if(sec == 0) return "0 second"; long numberOfYear = 0; long numberOfMothsInYear = 0; long numberOfDaysInYear = 0; long numberOfHoursInYear = 0; long numberOfMinInYear = 0; List<Long> list = new ArrayList<>(); if(sec >= (365*24*60*60){ numberOfYear = Math.floor(sec/(365*24*60*60)); sec = (sec - numberOfYear*3600*24*365); } if(sec >= (30*24*60*60)){ numberOfMothsInYear = Math.floor(sec / (30*24*60*60)); sec = (sec - numberOfMothsInYear*3600*24*30); } if(sec >= (24*60*60)){ numberOfDaysInYear = Math.floor(sec / (24*60*60)); sec = (sec - numberOfDaysInYear*60*60*24); } if(sec >= (60*60)){ numberOfHoursInYear = Math.floor(sec / (60*60)); sec = (sec - numberOfHoursInYear*60*60); } if(sec >= 60){ numberOfMinInYear = Math.floor(sec / (60)); sec = (sec - numberOfMinInYear*60); } list.add(numberOfMothsInYear); list.add(numberOfDaysInYear); list.add(numberOfHoursInYear); list.add(numberOfMinInYear); list.add(sec); String res = ""; boolean flag = false; if(numberOfYear > 0){ if(numberOfYear == 1){ res = res + "1 year"; }else{ res = res + numberOfYear + " years"; } if(numberOfMothsInYear == 0 && numberOfDaysInYear == 0 && numberOfHoursInYear == 0 && numberOfMinInYear == 0 && sec == 0){ return res; }else{ if(countZero(list) >= 2){ res = res + ", "; }else{ flag = true; res = res + " and "; } } } list.remove(0); if(numberOfMothsInYear > 0){ if(numberOfMothsInYear == 1){ res = res + "1 month"; }else{ res = res + numberOfMothsInYear + " months"; } if(numberOfDaysInYear == 0 && numberOfHoursInYear == 0 && numberOfMinInYear == 0 && sec == 0){ return res; }else{ if(countZero(list) >= 2){ res = res + ", "; }else if(!flag){ flag = true; res = res + " and "; } } } list.remove(0); if(numberOfDaysInYear > 0){ if(numberOfDaysInYear == 1){ res = res + "1 day"; }else{ res = res + numberOfDaysInYear + " days"; } if(numberOfHoursInYear == 0 && numberOfMinInYear == 0 && sec == 0){ return res; }else{ if(countZero(list) >= 2){ res = res + ", "; }else if(!flag){ flag = true; res = res + " and "; } } } list.remove(0); if(numberOfHoursInYear > 0){ if(numberOfHoursInYear == 1){ res = res + "1 hour"; }else{ res = res + numberOfHoursInYear + " hours"; } if(numberOfMinInYear == 0 && sec == 0){ return res; }else{ if(countZero(list) >= 2){ res = res + ", "; }else if(!flag){ flag = true; res = res + " and "; } } } list.remove(0); if(numberOfMinInYear > 0){ if(numberOfMinInYear == 1){ res = res + "1 minute"; }else{ res = res + numberOfMinInYear + " minutes"; } if(sec == 0){ return res; } } list.remove(0); if(sec > 0){ if(res.equals("")){ if(sec == 1){ return "1 second"; }else{ return sec + " seconds"; } }else{ if(sec == 1){ return res + " and 1 second"; }else{ return res + " and " + sec + " seconds"; } } } return res; } private int countZero(List<Long> list){ int countZero = 0; for(Long num: list){ if(num > 0){ countZero += 1; } } return countZero; }
Editor is loading...