Sort by

recency

|

963 Discussions

|

  • + 0 comments
    public static final String[] TO_TWENTY = {
            "one",
            "two",
            "three",
            "four",
            "five",
            "six",
            "seven",
            "eight",
            "nine",
            "ten",
            "eleven",
            "twelve",
            "thirteen",
            "fourteen",
            "quarter",
            "sixteen",
            "seventeen",
            "eigteen",
            "nineteen",
            "twenty"
        };
        
        public static String timeInWords(int h, int m) {
        // Write your code here
                List<String> numberwords = new ArrayList<>();
                for (String num : TO_TWENTY) {
                    numberwords.add(num);
                }
                Set<String> special = new HashSet<>();
                special.add("quarter");
                special.add("half");
                for (int x = 0; x < 9; x++) {
                    numberwords.add("twenty " + TO_TWENTY[x]);
                }
                numberwords.add("half");
                
                if (m > 30) {
                    int hh = h + 1;
                    if (hh > 12) {
                        hh = 1;
                    }
                    int m2 = 60 - m;
                    String minutes = special.contains(numberwords.get(m2 - 1))? "" : " minute";
                    if (! minutes.isEmpty() && m2 != 1) {
                        minutes += "s";
                    }
                    return numberwords.get(m2 - 1) + minutes + " to " + numberwords.get(hh - 1); 
                } else if (m >= 1) {
                    String minutes = special.contains(numberwords.get(m - 1))? "" : " minute";
                    if (! minutes.isEmpty() && m != 1) {
                        minutes += "s";
                    }
                    return numberwords.get(m - 1) + minutes +  " past " + numberwords.get(h - 1);
                    
                } else {
                    return numberwords.get(h - 1) + " o' clock";
                }       
        }
    }
            bufferedWriter.close();
        }
    }
    
  • + 0 comments

    Maybe theres shorter way but this is what works for me (Python3)

    def timeInWords(h, m):
        # Write your code here
        # dictionary of hours
        numberList={
            1: 'one',
            2: 'two',
            3: 'three',
            4: 'four',
            5: 'five',
            6: 'six',
            7: 'seven',
            8: 'eight',
            9: 'nine',
            10: 'ten',
            11: 'eleven',
            12: 'twelve',
            13: 'thirteen',
            14: 'fourteen',
            15: 'fifteen',
            16: 'sixteen',
            17:'seventeen',
            18:'eighteen',
            19:'nineteen',
            20:"twenty",
            21:'twenty one',
            22:"twenty two",
            23:"twenty three",
            24:"twenty four",
            25:"twenty five",
            26:'twenty six',
            27:'twenty seven',
            28:"twenty eight",
            29:"twenty nine"
        }
       
        edges={
            0:"o' clock",
            15:"quarter past",
            30:"half past",
            45:"quarter to"
        }
        time=''
        #edge cases
        if m in (0,15,30,45):
            if m==0:
                time= numberList[h]+" "+ edges[m]
                
            elif m==15 or m==30:
                time=edges[m]+" "+numberList[h]
    
            elif m==45:
                nextHr=h+1 if h<12 else 1 #if currently 12:45, quarter to one
                time=edges[m]+" "+numberList[nextHr]
            return time 
                
        #cases: m<30
        else:
            if m<30:
                time=numberList[m] + f" minute{'s' if m>1 else ""} past "+numberList[h]
            #case: m>30
            else:
                remainingMin= 60-m
                nextHr=h+1 if h<12 else 1 #if currently 12:50, 10 minutes to one
                time=numberList[remainingMin] +f" minute{'s' if m>1 else ""} to "+numberList[nextHr]
            return time
    
  • + 0 comments

    Mi solución en Python 3:

    def timeInWords(h, m):
        hours = ("one", "two", "three", "four", "five", "six", 
                            "seven", "eight", "nine", "ten", 
                            "eleven", "twelve")
        minutes = ("one", "two", "three", "four", "five", "six", 
                            "seven", "eight", "nine", "ten", 
                            "eleven", "twelve", "thirteen", 
                            "fourteen","fifteen", "sixteen", 
                            "seventeen", "eighteen", "ninteen", 
                            "twenty", "twenty one", "twenty two", 
                            "twenty three", "twenty four", 
                            "twenty five", "twenty six", 
                            "twenty seven", "twenty eight", 
                            "twenty nine")
    
        formats = {
            0: "%s o' clock",
            1: "one minute past %s",
            10: "ten minutes past %s",
            15: "quarter past %s",    
            30: "half past %s",
            40: "twenty minutes to %s",
            45: "quarter to %s",
        }
    
        time = ""
    
        if m in (0,1,10,15,30,40,45):
            k = 1 if m <= 30 else 0
            time = formats[m] % hours[h - k]
            
        elif (m < 30):
            hour = hours[h - 1]
            time = "{} minutes past {}".format(minutes[m - 1], hour)
    
        elif (m > 30):
            hour = hours[h]
            time = "{} minutes to {}".format(minutes[60 - m - 1], hour)
    
        return time
    
  • + 0 comments

    Write your code here

    numbers=["zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"]
    m1=["o' clock","minute past","minutes past","quarter past","half past","minutes to","quarter to"]
    
    text=""
    if m==0:        
        text+=numbers[h]
        text+=" "+m1[0]
    elif m ==1 :
        text=numbers[m]+" "+m1[1]+ " "+ numbers[h]
    elif m>=2 and m<=14:
        text=numbers[m]+" "+m1[2]+" "+numbers[h]
    elif m==15: 
         text=m1[3]+" "+numbers[h] 
    elif m>=16 and m<=19:
        text=numbers[m]+" "+m1[2]+" "+numbers[h]
    elif m>=20 and m<=29:
        min1=m%10
        text="twenty"+" "+numbers[min1]+" "+m1[2]+" "+numbers[h]
    elif m==30:
        text=m1[4]+" "+numbers[h]
    elif m>=31 and m<=39:
        min1=(60-m)%10
        text="twenty"+" "+numbers[min1]+" "+m1[5]+" "+numbers[h+1]
    elif m==40:
        text="twenty"+" "+m1[5]+" "+numbers[h+1]
    elif m==45:
        text=m1[6]+" "+numbers[h+1]
    elif m>=46 and m<=49:
        min1=(60-m)
        text=numbers[min1]+" "+m1[5]+" "+numbers[h+1]
    elif m==50:        
        text="ten"+" "+m1[5]+" "+numbers[h+1]
    elif m>=51 and m<=58:
        min1=(60-m)
        text=numbers[min1]+" "+m1[5]+" "+numbers[h+1]
    elif m==59:
        text="one minute to "+numbers[h+1]
    else: text="ok"
    
    return text 
    
  • + 0 comments

    This is my solution with Java HashMap

      public static String selectNumberInString(int n) {    
        HashMap<Integer, String> numbers = new HashMap<Integer, String>();
        numbers.put(1, "one");
        numbers.put(2, "two");
        numbers.put(3, "three");
        numbers.put(4, "four");
        numbers.put(5, "five");
        numbers.put(6, "six");
        numbers.put(7, "seven");
        numbers.put(8, "eight");
        numbers.put(9, "nine");
        numbers.put(10, "ten");
        numbers.put(11, "eleven");
        numbers.put(12, "twelve");
        numbers.put(13, "thirteen");
        numbers.put(14, "fourteen");
        numbers.put(15, "quarter");
        numbers.put(16, "sixteen");
        numbers.put(17, "seventeen");
        numbers.put(18, "eighteen");
        numbers.put(19, "nineteen");
        numbers.put(20, "twenty");
        numbers.put(21, "twenty one");
        numbers.put(22, "twenty two");
        numbers.put(23, "twenty three");
        numbers.put(24, "twenty four");
        numbers.put(25, "twenty five");
        numbers.put(26, "twenty six");
        numbers.put(27, "twenty seven");
        numbers.put(28, "twenty eight");
        numbers.put(29, "twenty nine");
        numbers.put(30, "half");
    
        return numbers.get(n);
      }
      
      public static String timeInWords(int h, int m) {
        // Write your code here
    
        if (m == 0) {
          return selectNumberInString(h) + " o' clock";
        }
    
        if (m == 30) {
          return selectNumberInString(m) + " past " + selectNumberInString(h);
        }
    
        if (m < 30) {
          String label = (m == 1) ? " minute" : " minutes";
          if (m == 15)
            label = "";
          return selectNumberInString(m) + label + " past " + selectNumberInString(h);
        }
    
        if (m > 30) {
          String label = (60 - m == 1) ? " minute" : " minutes";
          if (60 - m == 15)
            label = "";
          return selectNumberInString(60-m) + label + " to " + selectNumberInString(h + 1);
        }
    
        return "";
      }