開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 2章(数値), 2.5(練習問題)この本の著者の年齢 を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
- Rubyクックブック ―エキスパートのための応用レシピ集
この本の著者の年齢
コード(TextWrangler)
sample.rb
#!/usr/bin/env ruby1.9
# -*- coding: utf-8 -*-
td = Time.new
birth = td - 10.25 * (10 ** 8)
age = td.year - birth.year
age -= 1 if td.month < birth.month or (td.month == birth.month and td.day < birth.day)
puts "誕生日: #{birth}"
puts "今日: #{td}"
puts "年利: #{age}歳"
入出力結果(Terminal)
$ ./sample.rb 誕生日: 1980-06-12 04:54:10 +0900 今日: 2012-12-04 15:07:30 +0900 年利: 32歳 $
ちなみにJavaScriptの場合。
コード(TextWrangler)
var result = "";
var td = new Date();
var birth = new Date();
birth.setSeconds(td.getSeconds() - 10.125 * Math.pow(10, 8));
var age = td.getYear() - birth.getYear();
if(td.getMonth() < birth.getMonth() ||
(td.getMonth() === birth.getMonth() && td.getDate() < birth.getDate())){
age--;
}
result += "誕生日: " + birth + "\n" +
"今日: " + td + "\n" +
"年齢: " + age + "歳\n";
$('#pre0').text(result);
pythonの場合。
sample.py
コード(TextWrangler)
#!/usr/bin/env python3.3
# -*- coding: utf-8 -*-
import datetime
td = datetime.datetime.today()
birth_tm = td.timestamp() - 10.25 * (10**8)
birth = datetime.datetime.fromtimestamp(birth_tm)
age = td.year - birth.year
if td.month < birth.month or (td.month == birth.month and td.day < birth.day):
age -= 1
print("誕生日: {0}".format(birth))
print("今日: {0}".format(td))
print("年齢: {0}".format(age))
入出力結果(Terminal)
$ ./sample.py 誕生日: 1980-06-12 05:32:49.374804 今日: 2012-12-04 15:46:09.374805 年齢: 32 $
perlの場合。
sample.pl
コード(TextWrangler)
#!/usr/bin/env perl use strict; use warnings; use utf8; use 5.016; binmode STDIN, ':utf8'; binmode STDOUT, ':utf8'; use Time::Local; my $td_tm = timelocal((localtime)[0..5]); my $birth_tm = $td_tm - 10.25 * (10**8); my($sec, $min, $hour, $mday, $mon, $year) = (localtime($td_tm))[0..5]; my($b_sec, $b_min, $b_hour, $b_mday, $b_mon, $b_year) = (localtime($birth_tm))[0..5]; my $age = $year - $b_year; $age -= 1 if $mon < $b_mon or ($mon == $b_mon and $mday < $b_mday); printf "誕生日: %d-%02d-%02d %02d:%02d:%02d\n", $b_year + 1900, $b_mon + 1, $b_mday, $b_hour, $b_min, $b_sec; printf "今日: %d-%02d-%02d %02d:%02d:%02d\n", $year + 1900, $mon + 1, $mday, $hour, $min, $sec; printf "年齢: %d歳\n", $age;
入出力結果(Terminal)
$ ./sample.pl 誕生日: 1980-06-12 05:48:45 今日: 2012-12-04 16:02:05 年齢: 32歳 $
0 コメント:
コメントを投稿