日付がショップの正しい営業時間内にあることを検証する最善の方法は何だろうと思っていました...
私はゴルフのプロ向けのウェブサイトを作成しており、レッスンの予約を受け付けています。カレンダーに fullCalendar を使用し、Google カレンダーと統合して、プロのモバイルなどに簡単に同期できるようにしました。
カレンダーの一部として、顧客が時間枠をクリックすると、fullcalendar によって日付オブジェクトが提供されます。この選択されたスロットが、レッスンを受ける店舗の営業時間内にあるかどうかを検証したいなど。
時間はある時点で db テーブルから取得されますが、最適に機能する場合は JSON でページに返すことができますが、それはこの質問の目的ではありません...
曜日や「季節」によって開園時間が異なります【夏季・冬季】
ie:
Summer Times
Monday = 10:00 - 21:00
Tuesday = 10:00 - 21:00
Wednesday = 10:00 - 21:00
Thursday = 10:00 - 21:00
Friday = 10:00 - 21:00
Saturday = 08:00 - 18:00
Sunday = 08:00 - 18:00
Winter Times
Monday = CLOSED
Tuesday = 10:00 - 18:30
Wednesday = 10:00 - 18:30
Thursday = 12.00 – 20.30
Friday = 12.00 – 20.30
Saturday = 08:00 - 18:00
Sunday = 08:00 - 18:00
これを検証するための「最良の」方法は何でしょうか?
最善の選択肢は、ネストされた if/switch ステートメントを単純に実行することです..
[sudo code]
if(summer}
{
switch(date.getDay())
{
case 1:
if(time > mondayOpeningTime && time < mondayCloseTime)
{
return true;
}
else
{
return false;
}
break;
case 2:
execute code block 2
break;
.....
default:
code to be executed if n is different from case 1 and 2
}
}
else
{
// Same as summer logic but for winter times etc..
}
または、これを行うより良い方法はありますか?
長い投稿/質問をお詫びしますが、それを読んで返信するのに時間を費やしている人に前もって感謝します:)
クリス