[解決済み] Ruby で年齢を取得する
2022-06-29 18:03:28
質問
誕生日から年齢を知りたいのですが。
now - birthday / 365
ではうまくいきません。なぜなら、366日の年もあるからです。次のようなコードを思いつきました。
now = Date.today
year = now.year - birth_date.year
if (date+year.year) > now
year = year - 1
end
もっとRubyらしい年齢計算の方法はないのでしょうか?
どのように解決するのですか?
遅ればせながら、うるう年の2月29日に生まれた人の年齢を計算しようとすると、受け入れられた答えが恐ろしく壊れてしまいます。これは
birthday.to_date.change(:year => now.year)
を呼び出すと、無効な日付が作成されるからです。
代わりに以下のコードを使いました。
require 'date'
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
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Rubyで乱数を取得する方法
-
[解決済み】Rubyで複数行の長い文字列を改行せずに分割する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み】PG::ConnectionBad: fe_sendauth: パスワードが供給されない
-
[解決済み] nil:NilClass の未定義メソッド `each'... なぜでしょうか?
-
[解決済み] AWS S3です。アクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレスされている必要があります。
-
[解決済み] Errno::EACCESS: パーミッションが拒否された @ dir_s_mkdir
-
[解決済み] rails erb フォームヘルパー options_for_select :selected
-
[解決済み] Devise Admin Roleの追加【終了しました
-
[解決済み] RubyとRailsの "Date.today "フォーマット
-
[解決済み] railsでcheck_boxをcheckedにする方法は?
-
[解決済み] DateTime型の誕生日から年齢を計算するにはどうしたらいいですか?