開発環境
- 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 コメント:
コメントを投稿