残り日数表示 -- xday.pl --

目的の日までの残り日数(もしくは経過日数)を
計算して表示するありがちなスクリプトなのです

基本的に SSI での利用が前提です


〜〜 使い方 〜〜

xday.pl を適当なディレクトリに配置し実行属性をセットします
※ 使用目的に応じて内容も若干書き換えます

準備ができたら以下の書式で呼び出します

<!--#exec cmd="./xday.pl yyyymmdd"-->
コマンドへのパスは環境に応じて適宜変更してください
引数として目的の日を yyyymmdd で指定します

使用例

指定法表示
<!--#exec cmd="./xday.pl 20241221"-->目的の日まであと 5 日です
<!--#exec cmd="./xday.pl 20241217"-->目的の日まであと 1 日です
<!--#exec cmd="./xday.pl 20241216"-->目的の日です
<!--#exec cmd="./xday.pl 20241209"-->目的の日から 7 日経ちました


〜〜 スクリプト 〜〜

#!/usr/bin/perl

$xday = $ARGV[0];
# $xday = "20030101";    # 引数を使わない単体使用だと直接指定も可

use Time::Local;
($sec, $min, $hour, $mday, $mon, $year) = localtime(time);

$xday =~ /(\d\d\d\d)(\d\d)(\d\d)/;
$yy = $1;
$mm = $2;
$dd = $3;

$src  = timelocal(0, 0, 0, $mday, $mon   , $year + 1900);
$dest = timelocal(0, 0, 0, $dd  , $mm - 1, $yy);
$span = int(($dest - $src) / 86400);

if ($span > 3) {
    print "目的の日まであと ",$span," 日です";
} elsif ($span > 0) {
    print "目的の日まであと <FONT COLOR=\"\#ff0000\">",$span," 日</FONT>です";
} elsif ($span == 0) {
    print "<FONT COLOR=\"\#ff0000\"><B>目的の日</B></FONT>です";
} else {
    $span = int(($src - $dest) / 86400);
    print "目的の日から ",$span," 日経ちました";
}

ダウンロード → [xday.lzh]

[Back] [Home] [Map]