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