0

特定の日付が毎年週末に当たるかどうかを検出するスクリプトを作成しています。

25日、26日が祝日の場合は、翌平日が振替休日となり、残りの平日が営業日となります。

例:25日が土曜、26日が日曜の場合、27日、28日が祝日、29日、30日、31日が営業日

25 日が日曜日の場合、26 日と 27 日は祝日、28 日、29 日、30 日は営業日、31sy は土曜日になります。

ここに私の日付があります:

date('25-12-Y');
date('26-12-Y');
date('27-12-Y');
date('28-12-Y');
date('29-12-Y');
date('30-12-Y');
date('31-12-Y');

私が作成したコードは次のとおりです: ($getyear 変数は異なる年をテストするためのものであることに注意してください)

function isWeekend($date) {
    return (date('N', strtotime($date)) >= 6);
}
$getyear = 2013;

echo '25 ';
if (isWeekend(date('25-12-'.$getyear))){
   echo 'weekend'; 
} else {
    echo 'bh';
};
echo '<br>';
echo '26 ';
if (isWeekend(date('26-12-'.$getyear ))){
    echo 'weekend';
} else {
    echo 'bh';
};
echo '<br>';
echo '27 ';
if (isWeekend(date('27-12-'.$getyear ))){
    echo 'weekend'; 
} else { 
    echo 'leave';
};
echo '<br>';
echo '28 ';
if (isWeekend(date('28-12-'.$getyear ))){
    echo 'weekend'; 
} else {
    echo 'leave';
};
echo '<br>';
echo '29 ';
if (isWeekend(date('29-12-'.$getyear ))){
    echo 'weekend'; 
} else {
    echo 'leave';
};
echo '<br>';
echo '30 ';
if (isWeekend(date('30-12-'.$getyear ))){
    echo 'weekend'; 
} else {
    echo 'leave';
};
echo '<br>';
echo '31 ';
if (isWeekend(date('31-12-'.$getyear ))){
    echo 'weekend'; 
} else {
    echo 'leave';
};
echo '<br>';

これはおそらくベストプラクティスではないことを知っているので、これにアプローチする別の方法を探しています。

4

3 に答える 3

0

Carbonを使用して、そのロジックをすべて抽象化する必要があります。

その後、次のことができます。

$dt = Carbon::create(2013, 12, 25);
$dt->isWeekday(); // bool

Carbon のドキュメントは非常に優れているので、探しているものが見つかると確信しています。

于 2013-11-14T12:03:49.673 に答える