Decentworks::Date::Support - 日付機能拡張ライブラリ
はじめに
このgemは、個人開発用です。
そのため、予告なく仕様の追加・変更・削除が行われます。
もちろん、このgemを使用したことによるバグなどの責任は負えません。
概要
RailsのDate、ActiveSupport::TimeWithZoneに対する機能拡張を行います。
refinements
gemによる影響範囲を限定するため、refinementsを採用しています。
利用する場合は、適切なスコープでusingを利用してください。
機能
Dateクラス拡張
using
using ::Decentworks::DateSupport
ActiveSupport::TimeWithZoneクラス拡張
using
using ::Decentworks::ActiveSupport::TimeWithZoneSupport
週関係
- 週の始まりの曜日を指定しての日付・期間の取得
月関係
- Nヶ月前、Nヶ月後の日付の取得メソッドの追加
- 暦月の日付・期間の取得メソッドの追加
四半期関係
- 第1四半期〜第4四半期の日付・期間の取得メソッドの追加
上下期関係
- 上期〜下期の日付・期間の取得メソッドの追加
その他
- 満経過月数の計算
インストール
gem 'decentworks-date-support'
初期化ファイルの生成(Rails)
Railsから利用する場合は、以下のジェネレータでconfig/initializers/decentworks_date_support.rbを生成できます。
bin/rails generate decentworks:date_support:install
- 初期値は1月始まりです。
- その他の月に変更したい場合は、ファイルの内容を修正してください。
使い方の例
require 'decentworks/date_support'
using ::Decentworks::DateSupport
d = ::Date.new(2026, 8, 5)
d.all_this_week # => Mon, 03 Aug 2026..Sun, 09 Aug 2026
require 'decentworks/date_support'
using ::Decentworks::ActiveSupport::TimeWithZoneSupport
d = ::Time.zone.local(2026, 8, 5)
d.all_this_week # => 2026-08-03 00:00:00.000000000 JST +09:00..2026-08-09 23:59:59.999999999 JST +09:00