Calendar-Simple-1.07 > Calendar::Simple

名前

Calendar::Simple - シンプルなカレンダーを作る為のPerl拡張

概要

  use Calendar::Simple;

  my @curr      = calendar;             # 今月を取得
  my @this_sept = calendar(9);          # 今年の9月を取得
  my @sept_2002 = calendar(9, 2002);    # 2002年9月を取得
  my @monday    = calendar(9, 2002, 1); # 2002年9月を取得,
                                        # 週の開始を月曜日にする

説明

このとてもシンプルなモジュールはcalendarと呼ぶ一つの関数をエクスポート します。この関数はひと月の日付を表すデータ構造を返します。そのデータ構造 は配列リファレンスの配列を返します。配列の第1レベルは月の中の週を表します。 配列の第2レベルは実際の日が入っています。省略時、それぞれの週の初めは 日曜日です。そして配列の中の値はその日からの日付です。前月と来月からなる 最初の週の始めと最後の週の終わりはいつでもundefの値を持ちます。

もし、月と年の引数を省略したときは、今年の今月とみなされます。

3番目の任意引数のstart_dayは、localtime 関数が用意する wday と同様の同じ 値を使ってそれぞれの週の開始日の指定を可能にします。(すなわち、日曜の 代わりに0、月曜の代わりに1、以下同様)

簡単なcalの代わりは従ってこのようになります。

  #!/usr/bin/perl -w

  use strict;
  use Calendar::Simple;

  my @months = qw(January February March April May June July August
                  September October November December);

  my $mon = shift || (localtime)[4] + 1;
  my $yr = shift || ((localtime)[5] + 1900);

  my @month = calendar($mon, $yr);

  print "\n$months[$mon -1] $yr\n\n";
  print "Su Mo Tu We Th Fr Sa\n";
  foreach (@month) {
    print map { $_ ? sprintf "%2d ", $_ : '   ' } @$_;
    print "\n";
  }

エクスポート

calendar

著者

Dave Cross <dave@dave.org.uk>

With thanks to Paul Mison <cpan@husk.org> for the start day patch.

関連項目

perl, localtime