2012年2月20日月曜日

開発環境

『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の12章(新しいクラスのオブジェクト), 12.6(練習問題の続き)バースデーヘルパーを解いてみる。

その他参考書籍

バースデーヘルパー

コード(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 コメント:

コメントを投稿