Converta um determinado tempo em palavras

Converta um determinado tempo em palavras
Experimente no GfG Practice

Dado um horário no formato hh:mm (formato de 12 horas) 0 < hh < 12 0 <= mm < 60. The task is to convert it into words as shown:
Exemplos:  
 

Input : h = 5 m = 0 Output : five o' clock Input : h = 6 m = 24 Output : twenty four minutes past six 


Os casos de canto são m = 0 m = 15 m = 30 e m = 45.
 

6:00 six o'clock 6:10 ten minutes past six 6:15 quarter past six 6:30 half past six 6:45 quarter to seven 6:47 thirteen minutes to seven 


 


A ideia é usar a instrução if-else-if para determinar o tempo em palavras. De acordo com o exemplo dado acima, com base em minutos, podemos categorizar o tempo em palavras em 8, que são minutos iguais a 0 15 30 45 1 59 e em um intervalo menor que 30 ou maior que 30. Verifique o valor dos minutos e imprima de acordo.
Abaixo está a implementação desta abordagem:
 

C++
   // C++ program to convert time into words   #include          using     namespace     std  ;   // Print Time in words.   void     printWords  (  int     h       int     m  )   {      char     nums  [][  64  ]     =     {     'zero'       'one'       'two'       'three'       'four'        'five'       'six'       'seven'       'eight'       'nine'        'ten'       'eleven'       'twelve'       'thirteen'        'fourteen'       'fifteen'       'sixteen'       'seventeen'        'eighteen'       'nineteen'       'twenty'       'twenty one'        'twenty two'       'twenty three'       'twenty four'        'twenty five'       'twenty six'       'twenty seven'        'twenty eight'       'twenty nine'        };      if     (  m     ==     0  )      printf  (  '%s o' clock  n  '       nums  [  h  ]);      else     if     (  m     ==     1  )      printf  (  'one minute past %s  n  '       nums  [  h  ]);      else     if     (  m     ==     59  )      printf  (  'one minute to %s  n  '       nums  [(  h     %     12  )     +     1  ]);      else     if     (  m     ==     15  )      printf  (  'quarter past %s  n  '       nums  [  h  ]);      else     if     (  m     ==     30  )      printf  (  'half past %s  n  '       nums  [  h  ]);      else     if     (  m     ==     45  )      printf  (  'quarter to %s  n  '       nums  [(  h     %     12  )     +     1  ]);      else     if     (  m      <=     30  )      printf  (  '%s minutes past %s  n  '       nums  [  m  ]     nums  [  h  ]);      else     if     (  m     >     30  )      printf  (  '%s minutes to %s  n  '       nums  [  60     -     m  ]      nums  [(  h     %     12  )     +     1  ]);   }   // Driven Program   int     main  ()   {      int     h     =     6  ;      int     m     =     24  ;      printWords  (  h       m  );      return     0  ;   }   
Java
   // Java program to convert time into words   public     class   GFG   {          // Print Time in words.      static     void     printWords  (  int     h       int     m  )      {      String     nums  []     =     {     'zero'       'one'       'two'       'three'       'four'        'five'       'six'       'seven'       'eight'       'nine'        'ten'       'eleven'       'twelve'       'thirteen'        'fourteen'       'fifteen'       'sixteen'       'seventeen'        'eighteen'       'nineteen'       'twenty'       'twenty one'        'twenty two'       'twenty three'       'twenty four'        'twenty five'       'twenty six'       'twenty seven'        'twenty eight'       'twenty nine'        };          if     (  m     ==     0  )      System  .  out  .  println  (  nums  [  h  ]     +     ' o' clock '  );          else     if     (  m     ==     1  )      System  .  out  .  println  (  'one minute past '     +         nums  [  h  ]  );          else     if     (  m     ==     59  )      System  .  out  .  println  (  'one minute to '     +         nums  [  (  h     %     12  )     +     1  ]  );          else     if     (  m     ==     15  )      System  .  out  .  println  (  'quarter past '     +     nums  [  h  ]  );          else     if     (  m     ==     30  )      System  .  out  .  println  (  'half past '     +     nums  [  h  ]  );          else     if     (  m     ==     45  )      System  .  out  .  println  (  'quarter to '     +         nums  [  (  h     %     12  )     +     1  ]  );          else     if     (  m      <=     30  )      System  .  out  .  println  (     nums  [  m  ]     +     ' minutes past '     +      nums  [  h  ]  );          else     if     (  m     >     30  )      System  .  out  .  println  (     nums  [  60     -     m  ]     +     ' minutes to '     +         nums  [  (  h     %     12  )     +     1  ]  );      }          // Driven code      public     static     void     main  (  String     []  args  )      {      int     h     =     6  ;      int     m     =     24  ;      printWords  (  h       m  );      }   }   // This code is contributed by ihritik   
Python3
   # Python3 program to convert    # time into words   # Print Time in words.   def   printWords  (  h     m  ):   nums   =   [  'zero'     'one'     'two'     'three'     'four'     'five'     'six'     'seven'     'eight'     'nine'     'ten'     'eleven'     'twelve'     'thirteen'     'fourteen'     'fifteen'     'sixteen'     'seventeen'     'eighteen'     'nineteen'     'twenty'     'twenty one'     'twenty two'     'twenty three'     'twenty four'     'twenty five'     'twenty six'     'twenty seven'     'twenty eight'     'twenty nine'  ];   if   (  m   ==   0  ):   print  (  nums  [  h  ]   'o' clock'  );   elif   (  m   ==   1  ):   print  (  'one minute past'     nums  [  h  ]);   elif   (  m   ==   59  ):   print  (  'one minute to'     nums  [(  h   %   12  )   +   1  ]);   elif   (  m   ==   15  ):   print  (  'quarter past'     nums  [  h  ]);   elif   (  m   ==   30  ):   print  (  'half past'     nums  [  h  ]);   elif   (  m   ==   45  ):   print  (  'quarter to'     (  nums  [(  h   %   12  )   +   1  ]));   elif   (  m    <=   30  ):   print  (  nums  [  m  ]  'minutes past'     nums  [  h  ]);   elif   (  m   >   30  ):   print  (  nums  [  60   -   m  ]   'minutes to'     nums  [(  h   %   12  )   +   1  ]);   # Driver Code   h   =   6  ;   m   =   24  ;   printWords  (  h     m  );   # This code is contributed    # by Princi Singh   
C#
   // C# program to convert time into words   using     System  ;   class     GFG   {          // Print Time in words.      static     void     printWords  (  int     h       int     m  )      {      string     []     nums     =     {     'zero'       'one'       'two'       'three'       'four'        'five'       'six'       'seven'       'eight'       'nine'        'ten'       'eleven'       'twelve'       'thirteen'        'fourteen'       'fifteen'       'sixteen'       'seventeen'        'eighteen'       'nineteen'       'twenty'       'twenty one'        'twenty two'       'twenty three'       'twenty four'        'twenty five'       'twenty six'       'twenty seven'        'twenty eight'       'twenty nine'        };          if     (  m     ==     0  )      Console  .  WriteLine  (  nums  [  h  ]     +     ' o' clock '  );          else     if     (  m     ==     1  )      Console  .  WriteLine  (  'one minute past '     +     nums  [  h  ]);          else     if     (  m     ==     59  )      Console  .  WriteLine  (  'one minute to '     +      nums  [(  h     %     12  )     +     1  ]);          else     if     (  m     ==     15  )      Console  .  WriteLine  (  'quarter past '     +     nums  [  h  ]);          else     if     (  m     ==     30  )      Console  .  WriteLine  (  'half past '     +     nums  [  h  ]);          else     if     (  m     ==     45  )      Console  .  WriteLine  (  'quarter to '     +         nums  [(  h     %     12  )     +     1  ]);          else     if     (  m      <=     30  )      Console  .  WriteLine  (     nums  [  m  ]     +     ' minutes past '     +      nums  [  h  ]);          else     if     (  m     >     30  )      Console  .  WriteLine  (     nums  [  60     -     m  ]     +     ' minutes to '     +         nums  [(  h     %     12  )     +     1  ]);      }          // Driven code      public     static     void     Main  ()      {      int     h     =     6  ;      int     m     =     24  ;      printWords  (  h       m  );      }   }   // This code is contributed by ihritik   
PHP
      // PHP program to convert    // time into words   // Print Time in words.   function   printWords  (  $h     $m  )   {   $nums   =   array  (  'zero'     'one'     'two'     'three'     'four'     'five'     'six'     'seven'     'eight'     'nine'     'ten'     'eleven'     'twelve'     'thirteen'     'fourteen'     'fifteen'     'sixteen'     'seventeen'     'eighteen'     'nineteen'     'twenty'     'twenty one'     'twenty two'     'twenty three'     'twenty four'     'twenty five'     'twenty six'     'twenty seven'     'twenty eight'     'twenty nine'  );   if   (  $m   ==   0  )   echo   $nums  [  $h  ]   'o' clock  n  '   ;   else   if   (  $m   ==   1  )   echo   'one minute past '     $nums  [  $h  ]   '  n  '  ;   else   if   (  $m   ==   59  )   echo   'one minute to '     $nums  [(  $h   %   12  )   +   1  ]   '  n  '  ;   else   if   (  $m   ==   15  )   echo   'quarter past '     $nums  [  $h  ]   '  n  '  ;   else   if   (  $m   ==   30  )   echo   'half past '     $nums  [  $h  ]  '  n  '  ;   else   if   (  $m   ==   45  )   echo   'quarter to '     (  $nums  [(  $h   %   12  )   +   1  ])   '  n  '  ;   else   if   (  $m    <=   30  )   echo   $nums  [  $m  ]   ' minutes past '     $nums  [  $h  ]  '  n  '  ;   else   if   (  $m   >   30  )   echo   $nums  [  60   -   $m  ]   ' minutes to '     $nums  [(  $h   %   12  )   +   1  ]   '  n  '  ;   }   // Driver Code   $h   =   6  ;   $m   =   24  ;   printWords  (  $h     $m  );   // This code is contributed by aj_36   ?>   
JavaScript
    <  script  >      // Javascript program to convert time into words          // Print Time in words.      function     printWords  (  h       m  )      {      let     nums     =     [     'zero'       'one'       'two'       'three'       'four'        'five'       'six'       'seven'       'eight'       'nine'        'ten'       'eleven'       'twelve'       'thirteen'        'fourteen'       'fifteen'       'sixteen'       'seventeen'        'eighteen'       'nineteen'       'twenty'       'twenty one'        'twenty two'       'twenty three'       'twenty four'        'twenty five'       'twenty six'       'twenty seven'        'twenty eight'       'twenty nine'        ];          if     (  m     ==     0  )      document  .  write  (  nums  [  h  ]     +     ' o' clock '     +     ' 
'
); else if ( m == 1 ) document . write ( 'one minute past ' + nums [ h ] + '
'
); else if ( m == 59 ) document . write ( 'one minute to ' + nums [( h % 12 ) + 1 ] + '
'
); else if ( m == 15 ) document . write ( 'quarter past ' + nums [ h ] + '
'
); else if ( m == 30 ) document . write ( 'half past ' + nums [ h ] + '
'
); else if ( m == 45 ) document . write ( 'quarter to ' + nums [( h % 12 ) + 1 ] + '
'
); else if ( m <= 30 ) document . write ( nums [ m ] + ' minutes past ' + nums [ h ] + '
'
); else if ( m > 30 ) document . write ( nums [ 60 - m ] + ' minutes to ' + nums [( h % 12 ) + 1 ] + '
'
); } let h = 6 ; let m = 24 ; printWords ( h m ); < /script>

Saída
twenty four minutes past six  

Complexidade de tempo: O(1)

Espaço Auxiliar : O (1) como espaço constante foi usado


 

Criar questionário