Decentworks::Date::Support - 日付機能拡張ライブラリ

はじめに

このgemは、個人開発用です。
そのため、予告なく仕様の追加・変更・削除が行われます。
もちろん、このgemを使用したことによるバグなどの責任は負えません。

概要

RailsのDateActiveSupport::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