Andy Delcambre
12/14/2005 10:19:00 PM
What is wrong with printf, I learned C first and most recently have
done a lot of programming with python which includes printf style
variable interpolation. It is my favorite way of formatting output as
it is what I know. Does god kill a kitten out of personal preference
or some deep seated problem with printf in ruby?
- Andy Delcambre
On 12/14/05, Kroeger, Simon (ext) <simon.kroeger.ext@siemens.com> wrote:
>
> Everytime you use printf, God kills a kitten.
>
> time = 7683
> p [time/3600, time/60 % 60, time % 60].map{|t| t.to_s.rjust(2,
> '0')}.join(':')
>
> => "02:08:03"
>
> cheers
>
> Simon
>
> > -----Original Message-----
> > From: Andy Delcambre [mailto:adelcambre@gmail.com]
> > Sent: Wednesday, December 14, 2005 11:21 AM
> > To: ruby-talk ML
> > Subject: Re: convert seconds to hours:minutes:seconds
> >
> > As long as you dont go past 24 hours you can use the Time class:
> >
> > irb(main):016:0> Time.at(7683).gmtime.strftime('%R:%S')
> > => "02:08:03"
> >
> > If you dont use gmtime, it will go based off your localtime, where the
> > epoch = the offset from GMT.
> >
> > also by doing the arithmatic:
> > irb(main):023:0> time = 7683
> > => 7683
> > irb(main):024:0> hours = time/3600.to_i
> > => 2
> > irb(main):025:0> minutes = (time/60 - hours * 60).to_i
> > => 8
> > irb(main):026:0> seconds = (time - (minutes * 60 + hours * 3600))
> > => 3
> > irb(main):030:0> printf("%02d:%02d:%02d\n", hours, minutes, seconds)
> > 02:08:03
> > => nil
> >
> > HTH
> > - Andy Delcambre
> >
> > On 12/14/05, `p <a@o.e> wrote:
> > > hello!
> > > i am trying to convert a number of seconds to a nicely
> > formatted string
> > > like this:
> > >
> > > 7683 seconds = 02:08:03
> > >
> > > is there an easy way to accomplish this?
> > >
> > >
> >
> >
>
>