わたなべです.

Kazuhiro NISHIYAMA <zn / mbf.nifty.com> writes:

:class Time
:  def beat
:    was_gmt = 'GMT' == zone
:    gmtime unless was_gmt
:    beat = ((((hour + 1) * 60 + min) * 60 + sec) * 1000) / 86400

これだと 23 時台は @1000 以上になってしまいます.
こんな感じにしてみました. やっぱ @ つきだよね.

class Swatch < Time
  def beat
    gmtime
    beat = ((((hour + 1) % 24 * 60 + min) * 60 + sec) * 1000) / 86400
    localtime
    beat
  end
  def strftime fmt
    super fmt.gsub(/([^%]|^)%@/, '\1@%03d' % beat)
  end
end

if __FILE__ == $0
  print Swatch.now.strftime "%@ %H:%M:%S %@ %%@\n"
end

-- 
わたなべひろふみ