How do to print two zero's 00 as an integer?

前端 未结 4 1413
萌比男神i
萌比男神i 2021-01-14 01:49

I\'m working on some app academy practice questions and I can\'t seem to print two 00\'s for my time conversion. Here\'s what I have so far:

def time_convers         


        
相关标签:
4条回答
  • 2021-01-14 02:10

    replace last statement of time_conversion with return "%02d:%02d" % [ hours, minutes ]

    Check the document http://ruby-doc.org/core-2.1.5/String.html#method-i-25 for more details

    0 讨论(0)
  • 2021-01-14 02:11

    The method Fixnum#divmod is useful here:

    def time_conversion(minutes)
      "%d hours: %02d minutes" % minutes.divmod(60)
    end      
    
    time_conversion(360)
      #=> "6 hours: 00 minutes"
    
    0 讨论(0)
  • 2021-01-14 02:22

    You can use sprintf:

    sprintf("%02d:%02d", hours, minutes)
    

    or the equivalent String#%

    "%02d:%02d" % [hours, minutes]
    
    0 讨论(0)
  • 2021-01-14 02:29

    A very simple re-structuring of your code could be with one single line in your function def -

    return "#{m/60}:#{m%60 == 0 ? '00' : m%60}"
    

    Sample execution from irb -

    2.1.5 :077 > m=100
     => 100 
    2.1.5 :078 > puts "#{m/60}:#{m%60 == 0 ? '00' : m%60}"
    1:40
     => nil 
    2.1.5 :079 > m=120
     => 120 
    2.1.5 :080 > puts "#{m/60}:#{m%60 == 0 ? '00' : m%60}"
    2:00
     => nil 
    2.1.5 :081 >
    
    0 讨论(0)
提交回复
热议问题