開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語:Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 2章(数値), 2.5(練習問題)この本の著者の年齢 を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
- Rubyクックブック ―エキスパートのための応用レシピ集
この本の著者の年齢
コード(BBEdit)
sample.rb
#!/usr/bin/env ruby1.9 #-*- coding: utf-8 -*- td = Time.new birth = td - 10.25 * (10**8) age = 0 while Time.new(birth.year + age, birth.mon, birth.day) <= td age += 1 end age -= 1 puts "#{age}歳"
入出力結果(Terminal)
$ ./sample.rb 32歳 $
ちなみにJavaScriptの場合。
コード(BBEdit)
var td = new Date(); var birth = new Date(td - 10.25 * Math.pow(10, 8) * 1000); var age = -1; do{ age++; birth.setFullYear(birth.getFullYear() + 1); } while (birth <= td); $('#pre0').text(age + "歳");
pythonの場合。
sample.py
コード(BBEdit)
#!/usr/bin/env python3.3 # -*- coding: utf-8 -*- import datetime td = datetime.datetime.now() td_timestamp = td.timestamp() birth_timestamp = td_timestamp - 10.25 * (10**8) birth = datetime.datetime.fromtimestamp(birth_timestamp) age = 0 while birth.replace(year=birth.year + age) <= td: age += 1 else: age -= 1 print("{0}歳".format(age))
入出力結果(Terminal)
$ ./sample.py 32歳 $
perlの場合。
sample.pl
コード(BBEdit)
#!/usr/bin/env perl use strict; use warnings; use utf8; use 5.016; binmode STDIN, ":utf8"; binmode STDOUT, ":utf8"; use Time::Local; my $td_timestamp = timelocal((localtime)[0, 1, 2, 3, 4, 5]); my $birth_timestamp = $td_timestamp - 10.25 * (10**8); my @birth = localtime($birth_timestamp); my $timestamp = $birth_timestamp; my $age = 1; while( timelocal(@birth[0, 1, 2, 3, 4], $birth[5] + $age) <= $td_timestamp){ $age++; } $age--; print $age . "歳\n";
入出力結果(Terminal)
$ ./sample.pl 32歳 $
0 コメント:
コメントを投稿