「生年月日から年齢を計算する簡単な計算式」という記事。感心しました。なるほどね。
PHP、Perl、Java と 3 つの言語で紹介しておきながら、結局書かれているのは標準出力と型キャストだけというのも、なんともさみしいので、きちんと「計算」部分を書いてみた。
ということで、まずは perl:
#!/usr/bin/perl use strict; my $byear = 1977; my $bmon = 11; my $bday = 3; my ($year,$mon, $day) = (localtime(time))[5,4,3]; my $now = sprintf( "%04d%02d%02d", $year+1900, $mon+1, $day ); my $birth = sprintf( "%04d%02d%02d", $byear, $bmon, $bday ); print int( ($now - $birth) / 10000 );
続いて php:
<?php
$byear = 1977;
$bmon = 11;
$bday = 3;
$now = date('Ymd');
$birth = sprintf( '%s%02d%02d', $byear, $bmon, $bday );
echo (int)( ($now - $birth) / 10000 );
echo "\n";
?>
件のページは「サーバ管理者日記」らしいので、最後にシェルスクリプト:
#!/bin/sh
byear=1977
bmon=11
bday=3
now=`date '+%Y%m%d'`
if [ ${bmon} -lt 10 ]; then
bmon='0'${bmon}
fi
if [ ${bday} -lt 10 ]; then
bday='0'${bday}
fi
echo `expr \( ${now} - ${byear}${bmon}${bday} \) / 10000`
ここまで書かれたら正直うっとおしいですね。しかも、書いた本人も思ったほど面白くなかった。











コメントする