Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】DateTime::commercial()メソッドの使い方

commercialメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

commercialメソッドは、国際標準化機構が定めたISO 8601規格に準拠した週番号と曜日を指定して、新しいDateTimeオブジェクトを生成するメソッドです。このメソッドは、主にビジネスシーンや国際的な環境で、日付を週単位で管理する際に非常に役立ちます。

具体的には、対象となる年、その年の何週目かを示す週番号(cweek)、そしてその週の何曜日か(cday、月曜日を1とし日曜日を7とします)を引数として指定することで、特定の日付と時刻を持つDateTimeオブジェクトを構築します。例えば、「2024年の第1週の月曜日」といった形で、週を基準にして日付を正確に特定することが可能です。ISO 8601では、年の最初の木曜日を含む週がその年の第1週と定義されており、このメソッドはそのルールに基づいて日付を計算します。

さらに、時間(hour)、分(min)、秒(sec)、そしてタイムゾーンオフセット(offset)もオプションで指定でき、より詳細な日時を設定することができます。この機能により、通常の年・月・日で日付を指定する方法とは異なる、週の概念に基づいた柔軟な日付計算が可能となり、プロジェクト管理やスケジュール調整など、週単位の計画が重要な開発業務において、非常に有用なツールとなります。

構文(syntax)

1require 'date'
2
3DateTime.commercial(2023, 1, 1)

引数(parameters)

year, cweek, cday = 1, hour = 0, min = 0, sec = 0, offset = 0, sg = Date::ITALY

  • year: integer: 年を指定します。
  • cweek: integer: ISO 8601 形式の週番号を指定します。
  • cday: integer = 1: 週の曜日を指定します (1=月曜日, ..., 7=日曜日)。
  • hour: integer = 0: 時を指定します (0-23)。
  • min: integer = 0: 分を指定します (0-59)。
  • sec: integer = 0: 秒を指定します (0-59)。
  • offset: integer | Rational = 0: UTC からのオフセットを秒単位で指定します。
  • sg: Date::class = Date::ITALY: 使用する暦を指定します。

戻り値(return)

DateTime

与えられたDateTimeオブジェクトから、商取引で使われるような形式(年、月、日、時、分、秒)で表現された新しいDateTimeオブジェクトを返します。

関連コンテンツ