Sadece Ruby'ye bir göz atıyorum ve tarih/saat ile oynuyordum.Ruby ile randevuları çıkarma
irb(main):001:0> jamis_DOB = Time.mktime(2003, 10, 22, 06, 59)
=> Wed Oct 22 06:59:00 +0300 2003
irb(main):002:0> age = Time.now - jamis_DOB
=> 222934108.172989
irb(main):005:0> age_in_years = (((age/3600)/24)/365).to_i
=> 7
Yani benim örnek o yıllar kadar ekleyin olarak, artık yıllar varsa bilmeyecektir age_in_years olarak o kadar iyi değil. Bazı googled zaman/tarih öğreticiler aracılığıyla oldum ve sadece iki tarih çıkarmak ve bir yıl, ay, gün vb biçiminde dönmek zorunda kolay bir yol bulamadım. Ruby'nin bu tür şeyler için bir eklenti veya yerleşik bir şeyleri olduğunu tahmin ediyorum. Birisi bana ne olduğunu söyleyebilir mi? (Ayrıca, ileride başvurmak için bu tür bir şey için cevapları bulmak için herhangi bir tavsiye?)
Teşekkürler. Sen Date
yerine Time
istiyorum
Teşekkür Theo :) Sizin 3 öneri yapmamı ilham ... 'gerektirir tarihi' date_now = Date.today dob = Date.civil (2003, 10, 22) eğer date_now.month> dob.month yaş = date_now.year - dob.year elsif date_now.month == dob .month && date_now.day> dob.day"\ N" I, yaş:yaş = date_now.year - (- - dob.year date_now.year) başka yaş = dob.year 1 ucu uç print "Doğru yaşı" henüz ikinci önerinizi anlayamadı ve 1.9 oynamak için koşamıyor gibi görünmüyor. – Leke
Evet, haklısınız, son örnek, elbette ay ve günü de hesaba katmak zorunda. Ortadaki örnek, döngüdeki her dönüş için bir yıl kadar sürer ve dönüşleri sayar. Biraz daha doğru olması için değiştirdim. – Theo
Ruby'nin tarih çıkarmalarından sonra neden her zaman bir '/ 1' döndürdüğü konusunda kafam karışmıştı, değerin bir kaç gün olarak elde edilmesi için yukarıda belirtildiği gibi bir 'to_i' yapmak önemliydi. – waffl