[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(DTPtechNote:1219) [ruby] diary_txt.rb
#! /usr/local/bin/ruby -Ke
=begin
diary_txt.rb 0.1
日記用日付テキスト作成
動作環境;
ruby 1.8.2
Shukujitu.rbが必要です。
#http://www.h3.dion.ne.jp/~sakatsu/holiday_logic.htm
#EUCでやりたいなら、一番最初の行を-Keにしてください。
使い方;
ruby diary_txt.rb year
ex)
ruby diary_txt.rb 2006 > 2006.txt
注意;
1970年〜2006年を保証します。
1970年以前を入力するとエラーになります。
histry;
2005.09.12 ver.0.1
=end
##################変数とか設定とか
diary_txt = ''#カレンダーテキスト
delimiter_month = "月"
delimiter_day = "日"
week_list = ["(日)", "(月)", "(火)", "(水)", "(木)", "(金)", "(土)"]
##################らいぶらりー
require "Shukujitu"
require "date"
require "time"
##################オプションの検査
my_year = ARGV.shift
if my_year.to_i < 1969 then
print "error! illegal option...orz?n"
exit
end
##################ループ処理
12.times { |i|
days_of_month = Date.new(my_year.to_i, (i + 1), -1).day#該当月の最終日を得る
my_month = (i + 1).to_s
days_of_month.times { |ii|
my_day = (ii + 1).to_s
my_date = Time.parse(my_year + "-" + my_month + "-" + my_day)
tmp_str = my_month + delimiter_month + my_day + delimiter_day + week_list[my_date.wday] + Shukujitu::shukujitu?(my_date).to_s + "?n"#1日分の日付を生成
diary_txt.concat tmp_str#末尾に追加
}
}
print diary_txt