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

よろしくお願いいたします。

行いたい事
条件から、お店の営業時間(open)を知るプログラムの作成

以下の条件がテキストファイルより渡されます。

・曜日毎のopen時間
・月毎に決まった条件のopen時間、close時間
・特別な日のopen時間、close時間
(openは営業時間、closeは休業時間です。)

条件には、優先順位があります。
特別な日>月毎>曜日毎

曜日毎の設定で、営業時間になっていても、
特別な日として、休みを設定すれば、そちらが優先されます。

-----------------------------------------------------------------------
データ例.(実際は、決まったフォーマットで条件式が与えられています。)
・曜日毎の条件
月曜日~金曜日 7:00~19:00 open

・月毎の条件
毎月第3,4土曜日は 7:00~12:00 open
毎月1日、15日は、7:00~12:00 close

・特別な条件
特別なclose
4/29 5/3

特別なopen
5/1 19:00~ 22:00

-----------------------------------------------------------------------

この条件から、一定期間のお店の営業時間を表示する必要があります。

-----------------------------------------------------------------------
取得したい内容 4/26日から1週間の営業時間
4/26(土)07:00~12:00
4/27(日)
4/28(月)07:00~19:00
4/29(火)
4/30(水)07:00~19:00
5/1 (木)12:00~22:00
5/2 (金)07:00~19:00
5/3 (土)

-----------------------------------------------------------------------

・データをどのようにもつか?
・どのように処理していくか?

恥ずかしながら、解法の手がかりすらつかめない状態です。

どなたか、ヒントや参考書、アルゴリズムなどを、ご教示していただけないでしょうか?

よろしくお願いいたします。

A 回答 (3件)

> 条件には、優先順位があります。


> 特別な日>月毎>曜日毎

ある年月日がどの条件に当てはまるかを見ていく際、
大きく2とおりの方法があります。

1)優先順位の高い方から見ていき、条件に該当した時点でそこより低い順位のチェックを省略する。
2)優先順位の低い方から見ていき、条件に該当したらそれまでの判断結果を上書きする。

実行時間などに厳しい条件があるのでしたら1)の方法を選択するのでありましょうが、
おそらく今回の場合は1)2)どちらでも大差ないと思います。
考えやすい方を選んでよいと思います。

少しでもヒントになりましたでしょうか。
    • good
    • 0

ANo.1の通り、少なくとも



> ・特別な日のopen時間、close時間

には、年の情報が必要ですし、

> この条件から、一定期間のお店の営業時間を表示する必要があります。

この「一定期間」の条件にも年が必要ですね。

後は、あなたが説明した通りにプログラムを組めばいいだけです。
プログラミングは、何も特別なことではありません。他人に詳しく手順を説明するのと同じです。それを人間の言葉で書くか、プログラミング言語で書くかの違いだけです。
あなたの質問は、十分に手順を説明できていますから、後はプログラミング言語で書き下すだけです。
    • good
    • 0

ある月日が何曜日であるかを知るためには、年の情報が必要です。


ところが、投稿の中には見あたりません。
年の条件はどのように与えられますか?教えてください。

この回答への補足

asuncionさん、ありがとうございます。

説明不足で申し訳ございません。

表示を行う範囲の日時は、年月日を持っています。
入力画面で、範囲を指定します。

質問した内容の場合は、
開始日時 2008/04/26
終了日時 2008/05/03
を入力します。

また、取得するデータも年月日&日時を持っています。

特別な日の場合
close,2008/4/29 0:00,2008/4/30 0:00
(openまたはclose,開始時間,終了時間)

よろしくおねがいします。

補足日時:2008/04/18 12:20
    • good
    • 0

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