SORU
22 ŞUBAT 2010, PAZARTESİ


kaç gün saat dakika saniye içine 270921sec dönüştürmek için ? (ruby)

Saniye sayısı. Hadi 270921 söylüyorlar. Nasıl xx gün, yy saat, zz dakika, ww saniye olduğunu söyleyerek gösterebilir miyim?

CEVAP
22 ŞUBAT 2010, PAZARTESİ


divmod kullanarak oldukça özlü bir biçimde yapılabilir:

t = 270921
mm, ss = t.divmod(60)            #=> [4515, 21]
hh, mm = mm.divmod(60)           #=> [75, 15]
dd, hh = hh.divmod(24)           #=> [3, 3]
puts "%d days, %d hours, %d minutes and %d seconds" % [dd, hh, mm, ss]
#=> 3 days, 3 hours, 15 minutes and 21 seconds

Muhtemelen daha fazla collect ya da belki de temel mantığı overkill olabilir üç satır inject ama ile yaratıcı alarak KURU olabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Joshua Kywn

    Joshua Kywn

    17 Mayıs 2010
  • MrOctopi

    MrOctopi

    6 Aralık 2010
  • SomeOne Pro

    SomeOne Pro

    25 EKİM 2013