【Ruby3.x】Date::valid_ordinal?()メソッドの使い方
valid_ordinal?メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
valid_ordinal?メソッドは、与えられた西暦年と年内通算日(その年の1月1日からの日数)の組み合わせが、グレゴリオ暦において有効な日付を表すかどうかを判定するメソッドです。このメソッドはDateクラスのクラスメソッドとして提供されており、実際に日付オブジェクトを生成する前に日付の妥当性をチェックする際に役立ちます。
引数として、最初の引数には西暦年を、二番目の引数にはその年の通算日数を整数で指定します。例えば、1月1日であれば1、1月2日であれば2といった形式です。指定された年と通算日の組み合わせが有効な日付として成立する場合、このメソッドは対応するDateオブジェクトを返します。しかし、もし指定された通算日がその年の日数範囲を超えていたり(例: 平年の2月が29日と指定された場合)など、何らかの理由で無効な日付である場合は、nilを返します。
特に、ユーザーからの入力値など、外部から提供されたデータを用いて日付を扱う際に、その入力値が本当に有効な日付を構成するかどうかを事前に安全に確認したい場合に非常に有用です。通常のDateオブジェクト生成メソッドが無効な日付に対して例外を発生させるのに対し、valid_ordinal?メソッドは例外を発生させずにnilを返すため、プログラムの堅牢性を高め、エラーハンドリングをより簡潔に記述することが可能になります。
構文(syntax)
1Date.valid_ordinal?(year, ordinal_day)
引数(parameters)
year, yday, sg = Date::ITALY
- year: Integer: 年を指定します。
- yday: Integer: その年の元旦からの日数(1から始まる)を指定します。
- sg = Date::ITALY: Gregorian暦(グレゴリオ暦)かJulian暦(ユリウス暦)かを指定します。デフォルトはGregorian暦です。
戻り値(return)
Boolean
指定された日付が有効な序数日(年の初めからの日数)であるかどうかを判定し、真偽値(trueまたはfalse)を返します。