質問 |
||
| QNo.3955194 | アルゴリズム java お店の営業時間を知る方法 | |
|---|---|---|
| 質問者:namida6000 |
よろしくお願いいたします。 行いたい事 条件から、お店の営業時間(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 (土) ----------------------------------------------------------------------- ・データをどのようにもつか? ・どのように処理していくか? 恥ずかしながら、解法の手がかりすらつかめない状態です。 どなたか、ヒントや参考書、アルゴリズムなどを、ご教示していただけないでしょうか? よろしくお願いいたします。 |
|
困り度:
|
||
| 質問投稿日時: 08/04/17 19:01 |
||
回答 |
|
| ANo.3 | > 条件には、優先順位があります。 > 特別な日>月毎>曜日毎 ある年月日がどの条件に当てはまるかを見ていく際、 大きく2とおりの方法があります。 1)優先順位の高い方から見ていき、条件に該当した時点でそこより低い順位のチェックを省略する。 2)優先順位の低い方から見ていき、条件に該当したらそれまでの判断結果を上書きする。 実行時間などに厳しい条件があるのでしたら1)の方法を選択するのでありましょうが、 おそらく今回の場合は1)2)どちらでも大差ないと思います。 考えやすい方を選んでよいと思います。 少しでもヒントになりましたでしょうか。 |
|---|---|
| 回答者:asuncion | |
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/04/18 16:38 |
|
| |
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| ANo.2 | ANo.1の通り、少なくとも > ・特別な日のopen時間、close時間 には、年の情報が必要ですし、 > この条件から、一定期間のお店の営業時間を表示する必要があります。 この「一定期間」の条件にも年が必要ですね。 後は、あなたが説明した通りにプログラムを組めばいいだけです。 プログラミングは、何も特別なことではありません。他人に詳しく手順を説明するのと同じです。それを人間の言葉で書くか、プログラミング言語で書くかの違いだけです。 あなたの質問は、十分に手順を説明できていますから、後はプログラミング言語で書き下すだけです。 |
|---|---|
| 回答者:ken-etsu | |
| 種類:回答 どんな人:経験者 自信:自信あり |
|
| 回答日時: 08/04/17 23:17 |
|
| |
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| ANo.1 | ある月日が何曜日であるかを知るためには、年の情報が必要です。 ところが、投稿の中には見あたりません。 年の条件はどのように与えられますか?教えてください。 |
|---|---|
| 回答者:asuncion | |
| 種類:補足要求 どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/04/17 20:17 |
|
| |
| この回答への補足 | asuncionさん、ありがとうございます。 説明不足で申し訳ございません。 表示を行う範囲の日時は、年月日を持っています。 入力画面で、範囲を指定します。 質問した内容の場合は、 開始日時 2008/04/26 終了日時 2008/05/03 を入力します。 また、取得するデータも年月日&日時を持っています。 特別な日の場合 close,2008/4/29 0:00,2008/4/30 0:00 (openまたはclose,開始時間,終了時間) よろしくおねがいします。 |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |