【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オブジェクトを返します。