2012年11月21日水曜日

開発環境

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

その他参考書籍

ハッピーバースデー

コード(TextWrangler)

sample.rb

#!/usr/bin/env ruby1.9
# -*- coding: utf-8 -*-

print "生まれた年: "
birth_year = gets.chomp.to_i
print "生まれた月: "
birth_month = gets.chomp.to_i
print "生まれた日: "
birth_day = gets.chomp.to_i
birth_date = Time.gm(birth_year, birth_month, birth_day)
td = Time.new
age = 1
while  Time.gm(birth_year + age, birth_month, birth_day) <= td
  puts "平手打ち(パシッ): #{age}歳"
  age += 1
end
puts "誕生日: #{birth_date}"
puts "今日: #{td}"kamimuras

入出力結果(Terminal)

$ ./sample.rb
生まれた年: 2000
生まれた月: 11
生まれた日: 20
平手打ち(パシッ): 1歳
平手打ち(パシッ): 2歳
平手打ち(パシッ): 3歳
平手打ち(パシッ): 4歳
平手打ち(パシッ): 5歳
平手打ち(パシッ): 6歳
平手打ち(パシッ): 7歳
平手打ち(パシッ): 8歳
平手打ち(パシッ): 9歳
平手打ち(パシッ): 10歳
平手打ち(パシッ): 11歳
平手打ち(パシッ): 12歳
誕生日: 2000-11-20 00:00:00 UTC
今日: 2012-11-21 18:04:56 +0900
$ ./sample.rb
生まれた年: 2000
生まれた月: 11
生まれた日: 21
平手打ち(パシッ): 1歳
平手打ち(パシッ): 2歳
平手打ち(パシッ): 3歳
平手打ち(パシッ): 4歳
平手打ち(パシッ): 5歳
平手打ち(パシッ): 6歳
平手打ち(パシッ): 7歳
平手打ち(パシッ): 8歳
平手打ち(パシッ): 9歳
平手打ち(パシッ): 10歳
平手打ち(パシッ): 11歳
平手打ち(パシッ): 12歳
誕生日: 2000-11-21 00:00:00 UTC
今日: 2012-11-21 18:05:00 +0900
$ ./sample.rb
生まれた年: 2000
生まれた月: 11
生まれた日: 22
平手打ち(パシッ): 1歳
平手打ち(パシッ): 2歳
平手打ち(パシッ): 3歳
平手打ち(パシッ): 4歳
平手打ち(パシッ): 5歳
平手打ち(パシッ): 6歳
平手打ち(パシッ): 7歳
平手打ち(パシッ): 8歳
平手打ち(パシッ): 9歳
平手打ち(パシッ): 10歳
平手打ち(パシッ): 11歳
誕生日: 2000-11-22 00:00:00 UTC
今日: 2012-11-21 18:05:06 +0900
$

ちなみにJavaScriptの場合。

コード(TextWrangler)

var birth_year = parseInt($('#t0').val());
var birth_month = parseInt($('#t1').val()) - 1
var birth_day = parseInt($('#t2').val());
var birth_date = new Date(birth_year, birth_month, birth_day);
var date = birth_date;
var td = new Date();
var age = 1;
var result = "";
while(date.setYear(birth_year + age) <=td){
  result += "平手打ち(パシッ): " + age + "歳\n";
  age++;
}
result += "誕生日: " + birth_date + "\n今日: " + td;
$('#pre0').text(result);



pythonの場合。

sample.py

コード(TextWrangler)

#!/usr/bin/env python3.3
# -*- coding: utf-8 -*-

import datetime

print("生まれた年を入力: ", end="")
birth_year = int(input())
print("生まれた月を入力: ", end="")
birth_month = int(input())
print("生まれた日を入力: ", end="")
birth_day = int(input())

birth_date = datetime.date(birth_year, birth_month, birth_day)
td = datetime.date.today()
age = 1
while birth_date.replace(year = birth_year + age) <= td:
    print("平手打ち(パシッ): {0}歳".format(age))
    age += 1
print("誕生日: {0}".format(birth_date))
print("今日の日付: {0}".format(td))

入出力結果(Terminal)

$ ./sample.py
生まれた年を入力: 2000
生まれた月を入力: 11
生まれた日を入力: 20
平手打ち(パシッ): 1歳
平手打ち(パシッ): 2歳
平手打ち(パシッ): 3歳
平手打ち(パシッ): 4歳
平手打ち(パシッ): 5歳
平手打ち(パシッ): 6歳
平手打ち(パシッ): 7歳
平手打ち(パシッ): 8歳
平手打ち(パシッ): 9歳
平手打ち(パシッ): 10歳
平手打ち(パシッ): 11歳
平手打ち(パシッ): 12歳
誕生日: 2000-11-20
今日の日付: 2012-11-21
$ ./sample.py
生まれた年を入力: 2000
生まれた月を入力: 11
生まれた日を入力: 21
平手打ち(パシッ): 1歳
平手打ち(パシッ): 2歳
平手打ち(パシッ): 3歳
平手打ち(パシッ): 4歳
平手打ち(パシッ): 5歳
平手打ち(パシッ): 6歳
平手打ち(パシッ): 7歳
平手打ち(パシッ): 8歳
平手打ち(パシッ): 9歳
平手打ち(パシッ): 10歳
平手打ち(パシッ): 11歳
平手打ち(パシッ): 12歳
誕生日: 2000-11-21
今日の日付: 2012-11-21
$ ./sample.py
生まれた年を入力: 2000
生まれた月を入力: 11
生まれた日を入力: 22
平手打ち(パシッ): 1歳
平手打ち(パシッ): 2歳
平手打ち(パシッ): 3歳
平手打ち(パシッ): 4歳
平手打ち(パシッ): 5歳
平手打ち(パシッ): 6歳
平手打ち(パシッ): 7歳
平手打ち(パシッ): 8歳
平手打ち(パシッ): 9歳
平手打ち(パシッ): 10歳
平手打ち(パシッ): 11歳
誕生日: 2000-11-22
今日の日付: 2012-11-21
$

0 コメント:

コメントを投稿