🙌
使用しているModuleまとめ
開始月から終了月までの各月を出力させたい時や計算したい時
module Util
class Month
def self.each_month(start_month, end_month)
Enumerator.new do |y|
head = start_month
tail = end_month
while head <= tail
y << head
head = head.next_month
end
end
end
end
end
- 使い方
months = Util::Month.each_month(Date.new(2023, 1, 1), Date.new(2023, 6, 1))
months.each do |month|
puts "#{month}"
end
# 出力内容
# 2023-01-01
# 2023-02-01
# 2023-03-01
# 2023-04-01
# 2023-05-01
# 2023-06-01
3桁の区切り「カンマ」を削除、追加したいとき
- tr_commaメソッドはカンマを削除
- to_s_delimitedメソッドは3桁ごとにカンマで区切る
module Util
class Converter
# 3桁の区切り「カンマ」を削除
def self.tr_comma(str)
return str unless str.is_a?(String) && str.include?(',')
str.tr(',', '')
end
# 3桁の区切り「カンマ」を生成
def self.to_s_delimited(num)
num.to_i.to_s(:delimited)
end
end
end
- 使い方
# 3桁ごとのカンマを削除
result1 = Util::Converter.tr_comma("1,234,567")
puts result1 # 出力: "1234567"
# 数値を3桁ごとにカンマで区切る
result2 = Util::Converter.to_s_delimited(1234567)
puts result2 # 出力: "1,234,567"
タイプスタンプを文字列に付与したい場合
module Util
class TimeStamp
def self.with_timestamp(string, date: Time.zone.now, format: '%Y%m%d')
"#{string}_#{date.strftime(format)}"
end
end
end
- 使い方
puts Util::TimeStamp.with_timestamp("filename")
# 出力例: "filename_20230917"(今日の日付が2023-09-17である場合)
Discussion