>>36 Ruby str = '2021 7 0' y, m ,s = str.scan(/\d+/).map(&:to_i) a = '日月火水木金土'.chars.rotate(s) a << [" "] * ((Time.new( y, m, 1 ).wday - s) % 7) 1.upto(31){|d| break if Time.new( y, m, d ).month != m a << '%2d' % d } a.flatten.each_slice(7){|w| puts w.join(' ') }