Tôi chỉ đang xem ruby và đang chơi với ngày/giờ.Trừ ngày tháng với Ruby
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
Vì vậy, ví dụ của tôi không tốt như age_in_years sẽ không biết nếu có năm nhuận như những năm đó cộng lại. Tôi đã trải qua một số hướng dẫn thời gian/ngày googled và đã không tìm thấy một cách dễ dàng để chỉ trừ hai ngày và có nó trở lại trong một năm, tháng, ngày vv ... định dạng. Tôi đoán ruby có một tiện ích bổ sung hoặc một cái gì đó được tích hợp sẵn cho loại điều này. Ai đó có thể cho tôi biết đó là gì không? (Ngoài ra, bất kỳ lời khuyên nào về cách tìm câu trả lời cho loại điều này để tham khảo trong tương lai?)
Cảm ơn.
Nhờ Theo :) gợi ý thứ 3 của bạn cảm hứng cho tôi để làm ... require ' date' date_now = Date.today DOB = Date.civil (2003, 10, 22) nếu date_now.month> dob.month tuổi = date_now.year - dob.year elsif date_now.month == DOB .month && date_now.day> dob.daytuổi= date_now.year - dob.year khác tuổi = (date_now.year - dob.year) - 1 cuối cuối print "tuổi đúng là:", tuổi tác, "\ n" tôi thực sự không thể hiểu được gợi ý thứ hai của bạn và dường như không thể có 1,9 lượt chạy để chơi với nó. – Leke
Vâng, bạn nói đúng, ví dụ cuối cùng cũng phải tính cả tháng và ngày vào tài khoản. Ví dụ ở giữa chỉ cần bước một năm cho mỗi lượt trong vòng lặp và đếm lượt. Tôi đã thay đổi nó chính xác hơn một chút. – Theo
Tôi đã khá bối rối về lý do tại sao Ruby luôn trả về '/ 1' sau khi trừ ngày, điều quan trọng là phải thực hiện' to_i' trên kết quả như đã đề cập ở trên để lấy giá trị như một số ngày. – waffl