アキラのITメモ:誕生日からの経過日数を取得

IT関係、技術関係のメモです。

誕生日からの経過日数を取得

誕生日からの経過日数を取得するスクリプトをかけないかなあと思って書いてみました。といってもかなり簡易なものです。入力チェックもしてないですし、エポック秒で計算しているので1970年以前だとうまく動かないかもしれません。スクリプトはこんな感じです。なお、CGIで動かすことを想定して書いていますが、$bday、$bmonth、$byearを手入力で与えても動くと思います。時間があればもっときちんとしたものを作りたいのですがとりあえずはこんなもので。

#!/usr/bin/perl

use CGI;
use Time::Local;

# 誕生日の入手
my $query = CGI->new;
my $bday = $query->param("bday");
my $bmonth = $query->param("bmonth");
my $byear = $query->param("byear");
my $btime = timelocal(0,0,0,$bday,$bmonth,$byear);
my $bymd = sprintf("%d年%d月%d日",$byear-1900,$bmonth-1,$bday);

# 現在日時の取得
my $nowtime = time;
my ($day,$month,$year) = (localtime($nowtime))[3,4,5];
$year += 1900;
$month += 1;
my $ymd = sprintf("%d年%d月%d日",$year,$month,$day);

# 計算+表示
my $pastday = int(($nowtime-$btime)/(60*60*24));
print "Content-type: text/plain\n\n";
print "$ymdは$bymdから$pastday日後です。";

ちなみに上をbday.cgiという名前で保存し、以下のようなHTMLから呼び出せば使えるでしょう。

<html>
<head><title>誕生日からの経過日数</title></head>
<body>
<p>誕生日からの経過日数を計算します。
下のフォームに誕生日を入力してみてください。</p>
<form method="post" action="bday.cgi">
<p>誕生日:
<input name="byear" size="4" /> 年
<input name="bmonth" size="2" /> 月
<input name="bday" size="2" /> 日
<input type="submit" value="送信" /></p>
</form>
</body></html>

カテゴリ: Perl 投稿日: 2007年01月26日 01:48
Trackback URL: http://akira-site.net/cgi-bin/mt/mt-tb.cgi/453

コメント

コメントを投稿





カテゴリ「Perl」内の記事

サイト内検索

カテゴリ

最近のエントリ

関連商品

アバウト

Atom RSS
Powered by MT3.33-ja
合計:total
今日:today 昨日:yesterday