Updated on 2002-05-20
# 指定した日の間の日数を計算する ruby script
#
# copyright May 2002 by TAKENAKA, A.
require 'date' # 日付のクラスライブラリを利用する
# 引数に日付が指定されてなかったら,使い方を表示
if ARGV.length == 0
puts "usage: ruby daydif.rb yyyy/mm/dd [yyyy/mm/dd]"
puts " ruby daydif.rb yyyy-mm-dd [yyyy-mm-dd]"
exit
end
# 日付オブジェクトの生成
# 日付指定文字列が正しいかどうかのチェックは省略(手抜き)
yr, mo, dy = ARGV[0].split('[/-]') # 年月日の区切りは / か -
date0 = Date.new(yr.to_i, mo.to_i, dy.to_i)
if ARGV[1].nil? # 日付がひとつしか指定されてなかったら
date1 = Date.today # もう一方は今日.
else
yr, mo, dy = ARGV[1].split('/')
date1 = Date.new(yr.to_i, mo.to_i, dy.to_i)
end
date0, date1 = date1, date0 if date1 - date0 < 0 # date0 < date1 にする
printf "%d days from %s to %s\n", date1 - date0, date0.to_s, date1.to_s