作者: Noritsugu Nakamura
日時: 2002/12/19(19:34)
中村 のりつぐ です。

Perl でも書いてみました。

はじめ time で以下のように書いてみたら、
32bit 超えてしまうようで、無限ループになってしまいました。

#!/usr/bin/env perl

use Time::Local;

($sec, $min, $hours, $mday, $mon, $year) = (0, 0, 0, 1, 1, 2000);
$time = timelocal($sec, $min, $hours, $mday, $mon, $year - 1900);

while (1) {
    ($sec, $min, $hours, $mday, $mon, $year) = localtime($time);
    if ((($year + 1900) + ($mon + 1) * 100 + $mday) == 3333) {
        printf " %04d + %02d%02d\n", $year, ($mon + 1), $mday;
        break;
    }
    if ($mon == 0 && $mday == 1) {
        print "* $year\n";
    }
    $time += 60 * 60 * 24; # next day
}


しょうがないので、 Date::Calc っていうのを
使って書いてみました。

#!/usr/bin/env perl

use Date::Calc qw(Add_Delta_Days);

#($y, $m, $d) = (2000, 1, 1);
($y, $m, $d) = (1, 1, 1);

while (1) {
    if (($y + $m * 100 + $d) == 3333) {
        printf "%04d + %02d%02d = 3333\n", $y, $m, $d;
        last;
    }
    ($y, $m, $d) = Add_Delta_Days($y, $m, $d, 1);
}


Python では date が見当たらなかったのでパットは書けませんでした…

       中村 典嗣  E-mail:     nnakamur@...