[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