2012年12月2日日曜日

開発環境

『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 2章(数値), 2.5(練習問題)10年のふんすう を解いてみる。

その他参考書籍

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 コメント:

コメントを投稿