プロが教える店舗&オフィスのセキュリティ対策術

タイトルの通りなんですが、今日の曜日の取得方法についてアドバイスをお願いします。

自分でネットを調べてみて、下記の通りに記述してみました。

$times = time();
($tsec,$tmin,$thour,$tmday,$tmonth,$tyear,$weekday,$tstime) = localtime($times);
@weekly = ('Sun', 'Mon', 'Tue', 'Wed', 'Thr', 'Fri', 'Sut');

次に表示した場所に
print "$weekly[$weekday]\n";
と記述したら、一応今日の曜日(Thr)が表示されました。

私はPerlは全くの初心者で、何とか自力でここまで辿り着く事ができたのですが、このような記述の方法で間違いはないでしょうか?

うるう年の計算も、付け加えないといけませんか?
初歩的な質問かもしれませんが、アドバイスを頂けると助かります。

それでは、よろしくお願いします。

A 回答 (3件)

日付取得のルーチンは使いまわしできるので意外と重要ですよね。


ここのサイトを参考にしてみては?
わかりやすくていいですよ
http://www2u.biglobe.ne.jp/~MAS/perl/waza/menu.h …

参考URL:http://www2u.biglobe.ne.jp/~MAS/perl/waza/menu.h …
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。

参考先のサイトは検索で1度みてみましたが、どのように使用するのかちょっと分からなかったので、ここで記述されている方法は使用しませんでした。

ですが、その他にもいろいろと説明があるようなので、今後参考にしてみようと思います。

お礼日時:2004/04/16 04:04

あってると思うよ。


うるう年は自分で計算しなくていいです。

過去や未来の曜日が知りたければ自分で計算する場合もありますが。その場言いはツェラーの公式だったかな?が便利かと。
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。

とりあえずはこの記述方法で合っているのですね。
あと気になったのですが、年に1900をプラスしたり、月に1をプラスする必要はないのでしょうか?

曜日のみ表示させたいだけなので、年や月は直接関係ないような気もしますが、特に修正する必要はありますか?

アドバイスを頂けると助かります。

よろしくお願いします。

お礼日時:2004/04/16 04:07

localtime という関数は、うるう年なども考慮した日時情報を返すので、その辺は気にせず利用することができます。

また、曜日の取得や表示についても問題ありません。

ただ、No.2の補足にも書かれていますが、曜日しか必要ないのに他の情報まで取得するのは気持ち悪いですよね?localtime() の戻値は「リスト」なので、「添え字」を使って曜日だけを取り出すことができます。

  $weekday = (localtime($times))[6];

  ※「localtime($times)」全体を ( ) で囲む必要があります。

また localtime() は、引数がなければ勝手に time() の値を使うので、それも省略して次のように書くことができます。

  $weekday = (localtime)[6];

  ※time や localtime などの組み込み関数は、( ) がなくても関数として呼び出せます。

蛇足ですがついでに書くと、曜日名だけが必要で、@weekly や $weekday を他で使わないなら、次のようにも書けます。

  $wday_name = qw(Sun Mon Tue Wed Thr Fri Sat)[ (localtime)[6] ];

  ※「qw(Sun Mon …)」は「('Sun','Mon',…)」と等価です。

# 書いてて気が付きましたが、土曜日の略は 'Sut' ではなく 'Sat' ですね。
    • good
    • 0
この回答へのお礼

お返事が遅れてしまい、申し訳ありません。
御回答ありがとうございます。

特にうるう年について特別修正する事はないんですね。
もっと簡単に記述する方法も教えて頂き、ありがとうございます。

教えて頂いた方法を試してみて、上手くできたらその方法で曜日を表示させようと思います。

># 書いてて気が付きましたが、土曜日の略は 'Sut' ではなく 'Sat' ですね。
おはずかしい(^^;
仰る通りです。
とても基本的なところで間違えてしまいました。。。


丁寧に教えて頂きありがとうございました。

また何か御質問させて頂く事がありかもしれませんが、よろしくお願い致します。

お礼日時:2004/04/19 13:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!