SORU
4 Mayıs 2009, PAZARTESİ


'in kişi Ruby yaş olsun

Onun doğum gününden kişinin yaşı almak istiyorum. now - birthday / 365 bir kaç yıl 366 gün var, çünkü işe yaramaz. Aşağıdaki kod ile geldim:

now = Date.today
year = now.year - birth_date.year

if (date year.year) > now
  year = year - 1
end

Yaş hesaplamak için daha fazla Ruby'ish bir yolu var mı?

CEVAP
1 Mart 2010, PAZARTESİ


Partiye geç geldim biliyorum ama kabul cevabı biri 29 Şubat doğumlu yaş yürütmeye çalışıyoruz korkunç bir yılda koparır. Bu birthday.to_date.change(:year => now.year) çağrısı geçersiz bir tarih oluşturur.

Aşağıdaki kodu (Raylar projesi) yerine kullandım

def age(dob)
  now = Time.now.utc.to_date
  now.year - dob.year - ((now.month > dob.month || (now.month == dob.month && now.day >= dob.day)) ? 0 : 1)
end

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CMTelly

    CMTelly

    2 Mayıs 2007
  • Erica Griffin

    Erica Griffi

    8 HAZİRAN 2009
  • MkElite

    MkElite

    13 NİSAN 2012