Ruby Time#hourメソッドの使い方

この記事のポイント

時刻処理を行う際に欠かせないTime#hourメソッドについて、基本的な概念から実際の活用方法まで分かりやすく解説します。

  • Timeオブジェクトから時間部分を整数値で取得する基本機能
  • 現在時刻や指定時刻から時間情報を抽出する具体的な方法
  • 条件分岐やログ出力など実務で役立つ実装パターンの習得

これらのポイントを押さえることで、時刻処理をより効果的に活用できるようになります。

目次

Time#hourメソッドとは?

Time#hourメソッドは、Timeオブジェクトが持つ時刻情報から時間部分を取得するメソッドです。このメソッドを使用すると、時刻から0から23までの整数値として時間を抽出できます。

例えば、午後3時30分の場合は15を返します。RubyのTimeクラスは日時を扱うための基本的なクラスであり、hourメソッドはその中でも特に頻繁に使用される重要な機能の一つです。時刻に基づいた条件処理や、ログ出力、データ分析などの場面で威力を発揮し、プログラムに時間的な判断機能を追加する際に必要不可欠なツールとなります。

【関連】
Rubyをもっと詳しく学ぶならpaizaラーニング

基本構文

Time#hourメソッドの基本的な使い方は非常にシンプルで、Timeオブジェクトに対してhourメソッドを呼び出すだけです。現在時刻を取得する場合と、特定の時刻を指定する場合の両方に対応しており、どちらの場合も同じように時間部分を整数で取得できます。戻り値は常に0から23の範囲の整数となり、24時間形式での時間表現に対応しています。

# 現在時刻の時間を取得 current_hour = Time.now.hour puts current_hour

出力結果(例)

14

※このページ内のコードの出力結果の一部で、実行した時刻により変動するものがあります。また、時刻はUTC形式で計算されるため、日本時間での計算結果と異なる場合があります

# 特定の時刻を指定して時間を取得 specific_time = Time.new(2025, 3, 15, 9, 30, 0) hour_value = specific_time.hour puts "指定時刻の時間: #{hour_value}"

出力結果

指定時刻の時間: 9

実用例

ここからは、Time#hourメソッドの実用的な活用例を具体的なコード例とともに紹介していきます。日常的なプログラミングの現場でよく遭遇するシチュエーションを想定し、それぞれのサンプルコードには動物を使った親しみやすい出力結果を含めています。

これらの例を通じて、Time#hourメソッドがどのような場面で役立つのか、どのように応用できるのかを理解していただけるでしょう。各コード例は実際に動作するものを用意しており、そのまま実行して結果を確認することができます。

現在時刻の時間取得

Time.nowメソッドで取得した現在の時刻から時間部分だけを取得し、時間帯に応じて動物の活動状況を表示するシンプルな例です。

current_hour = Time.now.hour puts "現在は#{current_hour}時です" if current_hour < 6 puts "ネコは熟睡中です" else puts "イヌは元気に活動中です" end

出力結果(例)

現在は14時です
イヌは元気に活動中です

指定時刻からの時間抽出

任意の日時を指定して、その時刻から時間情報を抽出し、動物の会える時間チェックを行う実用的な例です。

zoo_time = Time.new(2025, 5, 20, 10, 0, 0) hour = zoo_time.hour puts "動物園チェック時刻: #{hour}時" if hour >= 9 && hour < 17 puts "ライオンに会えます!" end

出力結果

動物園チェック時刻: 10時
ライオンに会えます!

時間帯による条件分岐

時間帯に応じて異なる処理を実行する条件分岐の例で、動物たちの1日のスケジュールを管理します。

check_time = Time.new(2025, 4, 10, 15, 30, 0) hour = check_time.hour case hour when 6..11 puts "ウサギの朝食タイム" when 12..17 puts "サルの昼寝時間" else puts "フクロウの活動時間" end

出力結果

サルの昼寝時間

ログファイルでの時刻記録

システムログに時刻情報を記録する際に、時間部分を使用してファイル管理を行う実用的なパターンです。

log_time = Time.now hour = log_time.hour puts "ログ記録: #{hour}時台" if hour.even? puts "ペンギンのデータをバックアップ" else puts "キリンの活動ログを保存" end

出力結果(例)

ログ記録: 14時台
ペンギンのデータをバックアップ

営業時間チェック機能

店舗の営業時間内かどうかを判定し、営業状況に応じて動物カフェの案内メッセージを表示する例です。

business_time = Time.new(2025, 6, 1, 20, 0, 0) hour = business_time.hour puts "確認時刻: #{hour}時" if hour >= 10 && hour < 19 puts "ハムスターカフェ営業中" else puts "ハムスターカフェ営業時間外" end

出力結果

確認時刻: 20時
ハムスターカフェ営業時間外

時間別データ集計

1日の時間帯別にデータを分類し、動物の行動パターンを集計する処理の例を示します。

times = [8, 12, 16, 20] times.each do |h| sample_time = Time.new(2025, 1, 1, h, 0, 0) hour = sample_time.hour category = hour < 12 ? "morning" : "afternoon" puts "#{hour}時: トリの#{category}活動" end

出力結果

8時: トリのmorning活動
12時: トリのafternoon活動
16時: トリのafternoon活動
20時: トリのafternoon活動

スケジュール管理システム

予定の時刻を管理し、動物病院の診察スケジュールをチェックする実用的なシステム例です。

appointment = Time.new(2025, 7, 15, 14, 30, 0) hour = appointment.hour puts "診察予定: #{hour}時" schedule = hour < 13 ? "午前診察" : "午後診察" puts "カメの#{schedule}です"

出力結果

診察予定: 14時
カメの午後診察です

時刻フォーマット処理

時刻データを整形して表示する際に、時間部分を活用したフォーマット処理の実装例を紹介します。

format_time = Time.new(2025, 8, 25, 7, 45, 0) hour = format_time.hour formatted = hour < 10 ? "0#{hour}" : hour.to_s puts "フォーマット済み: #{formatted}:45" puts "ヒツジの散歩時間です"

出力結果

フォーマット済み: 07:45
ヒツジの散歩時間です

まとめ

Time#hourメソッドは、時刻処理において基本的な機能を提供します。このメソッドを活用することで、時間に基づいた処理を簡潔に実装できるようになります。

Time#hourメソッドの活躍する場面

  • システムログの時間帯別分類処理での時刻情報管理
  • Webアプリケーションでの営業時間判定機能の実装
  • バッチ処理の実行時間制御とスケジュール管理

重要なポイント

  • 戻り値は常に0から23の整数で24時間形式に対応
  • Timeオブジェクトに対して直接呼び出す簡潔な構文
  • 条件分岐や繰り返し処理との組み合わせで威力を発揮

Time#hourメソッドは、プログラムに時間的な判断能力を与える重要なツールです。基本的な使い方から実用的な応用例まで理解することで、より効率的で実用的なRubyプログラムを作成できるようになります。時刻処理は多くのWebアプリケーションで必要となる機能であり、このメソッドをマスターすることで開発の幅が大きく広がるでしょう。

レベルを更に上げたい方はpaizaプログラミングスキルチェックへ

  1. paizaラーニングトップ
  2. リファレンス
  3. Rubyのリファレンス記事一覧
  4. Ruby Time#hourメソッドの使い方