アプリ版:「スタンプのみでお礼する」機能のリリースについて

Perlで第2週の水曜日ってどうやって判定するのでしょうか?
教えてくださいませ。

A 回答 (4件)

#2補足>


第2週の水曜日と第2水曜日は、違いますが、第2水曜日だとすると、
CPANモジュールのDate::Calc を使うと以下のような感じ。
----------------------------------------------------------------
use Date::Calc qw(Today Decode_Day_of_Week Nth_Weekday_of_Month_Year);
($year, $month, $day) = Today();
$weekday = Decode_Day_of_Week("Wed");#水曜日のこのプログラムでの表現:3(月曜-日曜:1-7)
($y, $m, $d) = Nth_Weekday_of_Month_Year($year, $month, $weekday, 2);#第2水曜
if($day > $d){
print "Aの処理を実行";
} else {
print "Bの処理を実行";
}
    • good
    • 0
この回答へのお礼

どうもありがとうございます。
解決しました。

お礼日時:2006/08/06 22:11

「今日が」というなら簡単に算出できます。



($mday, $wday) = (localtime())[3,6];
@week = qw/日 月 火 水 木 金 土/;

print "今日は第", int($mday/7)+1, $week[ $wday ], "曜日です";

つまりint($mday/7)+1==2で、$wday==3なら第2水曜日です。

「ある日が」となると曜日の取得が必要になります。
Time::Localモジュールからtimelocalで指定日のUnixTimeを得てlocaltimeで曜日を取得するという流れになると思います。ツェラーの公式使ってもいいんですが。

この回答への補足

参考になるスクリプトありがとうございます。
NO2に補足しましたが、今日が今月の第2水曜日を過ぎているか、いないかをフラグとして取得したと考えております。
応用ができませんのでどうぞよろしくお願いします。

補足日時:2006/08/06 16:05
    • good
    • 0

前提条件を教えてください。


・年、月、調べる曜日、月の第n週 を与えて、その(年月)日を求める
・年、月、日、調べる曜日、月の第n週を与えて、条件に合致するか調べる

この回答への補足

スクリプト実行時の月の2回目の水曜日の日付を求めて、スクリプト実行時が2回目の水曜日を過ぎていればAの処理を実行、過ぎていなければBの処理を実行するというようにしたいと考えております。
どうぞよろしくお願いします。

補足日時:2006/08/06 16:01
    • good
    • 0

Perlが分からないので、アルゴリズムの話しかできませんが、参考になれば。

。。

1日の日付の曜日を与えます。(例えば、1日が金曜日だとします)
金曜日の場合、1から2を引きます。(金→木→水、と2つ前が水曜びだから)※
-1という数字が分かったら、そこに7を足します。
すると、6日が第2週の水曜日です。

※日、月、火はそれぞれ3,2,1を加えて、木、金、土は1,2,3を1から引けば、あとは7日を足せば良いということです。

この回答への補足

ありがとうございます。

質問の書き方が悪かったです。
今月の2回目の水曜日という意味でした。

補足日時:2006/08/06 15:59
    • good
    • 0

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