開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 2章(数値), 2.5(練習問題)10年の分数 を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
- Rubyクックブック ―エキスパートのための応用レシピ集
10年の分数
コード(TextWrangler)
sample.rb
#!/usr/bin/env ruby1.9 # -*- coding: utf-8 -*- minutes = 10 * 365 * 24 * 60 puts "#{minutes + 24 * 60}分(うるう年を1年含む場合)" puts "#{minutes + 2 * 24 * 60}分(うるう年を2年含む場合)" puts "#{minutes + 3 * 24 * 60}分(うるう年を3年含む場合)" td = Time.new ago = Time.gm(td.year - 10, td.month, td.day, td.hour, td.min, td.sec) puts "過去10年の分数: #{((td - ago) / 60).to_i}分"
入出力結果(Terminal)
$ ./sample.rb 5257440分(うるう年を1年含む場合) 5258880分(うるう年を2年含む場合) 5260320分(うるう年を3年含む場合) 過去10年の分数: 5259780分 $
ちなみにJavaScriptの場合。
コード(TextWrangler)
var result = ""; var minutes = 10 * 365 * 24 * 60; result += (minutes + 24 * 60) + "分(うるう年を1年含む場合)\n" + (minutes + 2 * 24 * 60) + "分(うるう年を2年含む場合)\n" + (minutes + 3 * 24 * 60) + "分(うるう年を3年含む場合)\n"; var td = new Date(); var ago = (new Date()).setYear(1900 + td.getYear() - 10); result += "過去10年間の分数: " + (td - ago) / (60 * 1000) + "分"; $('#pre0').text(result);
pythonの場合。
sample.py
コード(TextWrangler)
#!/usr/bin/env python3.3 # -*- coding: utf-8 -*- minutes = 10 * 365 * 24 * 60 print("{0}分(うるう年を1年含む場合)".format(minutes + 60 * 24)) print("{0}分(うるう年を2年含む場合)".format(minutes + 2 * 60 * 24)) print("{0}分(うるう年を3年含む場合)".format(minutes + 3 * 60 * 24)) import datetime td = datetime.datetime.today() ago = td.replace(year=td.year - 10) print("過去10年の分数: {0}分".format( int(round((td.timestamp() - ago.timestamp()) / 60))))
入出力結果(Terminal)
$ ./sample.py 5257440分(うるう年を1年含む場合) 5258880分(うるう年を2年含む場合) 5260320分(うるう年を3年含む場合) 過去10年の分数: 5260320分 $
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 $minutes = 10 * 365 * 24 * 60; print $minutes + 24 * 60 . "分(うるう年を1年含む場合)\n"; print $minutes + 2 * 24 * 60 . "分(うるう年を2年含む場合)\n"; print $minutes + 3 * 24 * 60 . "分(うるう年を3年含む場合)\n"; my $td = timelocal((localtime)[0..5]); my $ago = timelocal((localtime)[0..4], (localtime)[5] - 10); print "過去10年の分数: " . ($td - $ago) / 60 . "分\n";
入出力結果(Terminal)
$ ./sample.pl 5257440分(うるう年を1年含む場合) 5258880分(うるう年を2年含む場合) 5260320分(うるう年を3年含む場合) 過去10年の分数: 5260320分 $
0 コメント:
コメントを投稿