fjord/cal.rb

35 lines
875 B
Ruby
Raw Normal View History

2024-03-07 22:40:32 +09:00
#!/usr/bin/ruby
2024-03-06 22:31:13 +09:00
require 'date'
2024-03-07 22:40:32 +09:00
require 'optparse'
2024-03-06 22:31:13 +09:00
2024-03-09 09:13:53 +09:00
## 年月の初期設定(現在の年月)
2024-03-07 22:40:32 +09:00
year = Date.today.year
month = Date.today.month
2024-03-08 22:33:32 +09:00
2024-03-09 09:13:53 +09:00
## コマンドラインオプション指定で年月を置き換える
2024-03-08 22:33:32 +09:00
opt = OptionParser.new
2024-03-09 09:13:53 +09:00
opt.on('-m month') { |v| month = v.to_i }
opt.on('-y year') { |v| year = v.to_i }
opt.parse(ARGV)
2024-03-08 22:33:32 +09:00
2024-03-09 09:13:53 +09:00
## 月初日の曜日、当該月の総日数、週の配列
startwday = Date.new(year, month, 1).wday
totaldate = Date.new(year, month, -1).day
2024-03-07 22:40:32 +09:00
week = %w[日 月 火 水 木 金 土]
2024-03-06 22:31:13 +09:00
2024-03-09 09:13:53 +09:00
## カレンダーを出力する
puts month.to_s.rjust(7) + '月 ' + year.to_s
2024-03-07 22:40:32 +09:00
puts week.join(' ')
print ' ' * startwday
days = startwday
2024-03-09 09:13:53 +09:00
(1..totaldate).each do |day|
2024-03-07 22:40:32 +09:00
print day.to_s.rjust(2) + ' '
days += 1
print "\n" if days % 7 == 0
2024-03-09 09:13:53 +09:00
if day == Date.today.day - 1 && ARGV == []
print "\e[30m\e[47m"
else
print "\e[0m"
end
2024-03-07 22:40:32 +09:00
end