開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の12章(新しいクラスのオブジェクト), 12.6(練習問題の続き)バースデーヘルパーを解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
バースデーヘルパー
コード(TextWrangler)
#!/usr/bin/env ruby #encoding: utf-8 file_name = 'birth_day_helper' birth_day = {} File.read(file_name).each_line do |line| line.chomp name, date, year = line.split(',') month, day = date.split birth_day[name] = Time.gm(year, month, day) end td = Time.new puts "今日の日付: #{td}" while true puts '名前を入力(空文字で終了)' name = gets.chomp break if name == '' d = birth_day[name] if d age = td.year - d.year age -= 1 if td.day < d.day && td.month <= d.month puts "誕生日: #{d} 年齢: #{age}" else puts 'その人物の誕生日は分かりません。' end end
入出力結果(Terminal)
$ ./ruby_program.rb 今日の日付: Mon Feb 20 17:16:17 +0900 2012 名前を入力(空文字で終了) Christopher Plummer 誕生日: Sat Feb 19 00:00:00 UTC 2000 年齢: 12 名前を入力(空文字で終了) Christopher Walken, その人物の誕生日は分かりません。 名前を入力(空文字で終了) Christopher Walken 誕生日: Sun Feb 20 00:00:00 UTC 2000 年齢: 12 名前を入力(空文字で終了) The King of Spain 誕生日: Mon Feb 21 00:00:00 UTC 2000 年齢: 11 名前を入力(空文字で終了) $
本書を続けつつ、上記の本を入手したらそっちに切り替え。
0 コメント:
コメントを投稿