- 締切済み
期間重複チェックがわかりません
2年目の若手プログラマです 2年目にもなってこんなこともできないのかと 毎日のように怒られています VB2005+SQLServer2005で開発を行っています。 期間を3つ入力してデータを抽出する プログラムを作っているのですが 期間重複チェックがわかりません 期間(1)~期間(3)まであります(抽出条件) 1,2,3各期間重複する場合は再入力させるとしか 仕様書に書かれておらず プログラミングできず困っています。 期間(1) txtStartDate1.text txtEndDate1.text 期間(2) txtStartDate2.text txtEndDate2.text 期間(3) txtStartDate3.text txtEndDate3.text
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- kmee
- ベストアンサー率55% (1857/3366)
そうそう、老婆心ついでに。 あなたが転職を考えなければならない理由は、もうひとつあります。 会社の方から、あなたを雇うのをやめる可能性がある、ということです。 ○業務内容の多くは対外的に秘密です。 あなたがここで質問すること自体が、秘密の漏洩にあたるかもしれません それとも、上司等にここで質問しても問題無いことを確認していますか? ○頼まれて作っているのなら、頼んだ人がいるはずです。 関係者が見れば、これが自分に関係するものだと気付くでしょう。 こんなことをネットで質問するようなプログラマのいる業者に、信頼して仕事をまかせられるでしょうか? 怒って、契約破棄や損害賠償請求してきてもおかしくないです。 このように、会社に損害を与えるようなことを、あなたはやってしまいました。 うまくすれば、厳重注意の上で始末書提出、で済むかもしれませんが、最悪は、懲戒免職の上に損害賠償ということもあります。
- Picosoft
- ベストアンサー率70% (274/391)
>やはりアルゴリズムが思い浮かばないのでコードでのご回答お願いできませんでしょうか。 >2年目としてはスキルなさすぎですよね 「自分でじっくり考える」というステップを飛ばしていた結果、 アルゴリズムの引き出しがほとんど空っぽのままです。 アルゴリズムを考える力もついていません。 そのため、自分の仕事にも、自分にも自信が持てません。 >いつかプログラミングができるようになると思い 今の姿勢・やり方のままで、いつかプログラミングができるようになると思いますか? 少々突き放した言い方ですが、今のやり方を変える気がないのであれば、転職を考えることをおすすめします。 まず、紙とペンを出して「自分で図を描いて」ください。 ・期間1=2/10~2/20 期間2=2/15~2/25とした図……(1) ・期間1=2/10~2/20 期間2=2/23~2/28とした図……(2) (具体的な数字を使うとイメージしやすくなります) 次に、(1)と(2)の「図を見ながらじっくり考えて」ください。 ・なぜ(1)は「重複あり」と判断できるのか。 ・(1)で、期間2のスタートをいつにずらせば「重複なし」になるのか。 ・なぜ(2)は「重複なし」と判断できるのか。 ・(2)で、期間2のスタートをいつにずらせば「重複あり」になるのか。 ・「重複あり」と「重複なし」の境目は? するべき処理を「視覚的にイメージできる」ようになれば一歩前進です。 全くイメージができないままここでコードの話をしてもほとんど意味がありません。 自分でじっくり考えて納得したアルゴリズムは、 あなたにとって、今後ずっと使える引き出しの一つになります。 引き出しが増えれば増えるほど、プログラマーとしての自信も出てくるでしょう。
- Taiyonoshizuku
- ベストアンサー率37% (183/489)
職業としてやっていく気なら時間が無くったって怒られたって自分で考えなきゃだめだよ。 まずは先輩に聞こうよ。 こんなところで回答待ってる時間あったら手と頭を動かすこと。 このままじゃやっていけないよ? 難しく考えずに各項目に入力されていたらそれぞれ1つずつチェックしていけば? そこで重複してたらエラーなわけだし。 期間1と期間2をチェック 期間1と期間3をチェック 期間2と期間3をチェック http://blog.yaju.jp/200812/article_13.html これみて作っているものに組み込んで。 エラー処理なんかの仕様はわからんから。 ここまで情報があってもソースくれっていうなら仕事考え直したほうがいいよ。 (あと極端にお礼率少ないし、無償で全部作ってくれっていうのもねぇ) 今から自分で考えることを捨ててしまうとだめプログラマーになっちゃう。 がんばって
- kmee
- ベストアンサー率55% (1857/3366)
その解説、書き方がちょっとまぎらわしいです。 > 日付の開始日 ≦ (1)~(4)の終了日 AND 日付の終了日 ≧ (1)~(4)の開始日 は 「日付」と(1)との重複→ 日付の開始日 ≦ (1)の終了日 AND 日付の終了日 ≧ (1)の開始日 「日付」と(2)との重複→ 日付の開始日 ≦ (2)の終了日 AND 日付の終了日 ≧ (2)の開始日 ... の意味です。 「重複しない」の方が ・「日付」と(1)のように 日付の開始日 > もう一方の終了日 ・「日付」と(2)のように 日付の終了日 < もう一方の開始日 のどちらか(Or)、と、条件がわかりやすいかもしれません。 この条件を否定すれば、丁度、上記の「重複する」条件になります。 > 期間3つのチェックをするということで全然アルゴリズムが浮かんできません 期間(1)、(2)、(3)で重複がない ⇔ 期間(1)と(2)で重複が無い かつ 期間(2)と(3)で重複が無い かつ 期間(3)と(1)で重複が無い 期間(1)、(2)、(3)で重複がある ⇔ 期間(1)と(2)が重複している または 期間(2)と(3)が重複している または 期間(3)と(1)が重複している ですよね?この程度で「アルゴリズム」とはとても呼べません。 老婆心ながら。 今回のことは、「算数」の領域だと思います。 これができないようなら、プログラマには向いていない、と言わざるを得ません。 転職するか、算数からやりなおすことをお勧めします。 > コードでのご回答をお願いできませんでしょうか。 これは、あなたの代りに仕事をしろ、ってことですよね? 適正な報酬が貰えるならやりますけど
お礼
お忙しい中何度もご回答いただきありがとうございます。 私はプログラマ向いていません自分でもわかっています。 けど、生活のために生きていくためにこの職業にしがみついています。 読解力がないせいで貴方の貴重なご回答が理解できません。 アルゴリズムが浮かんできません。 お忙しい中本当に申し訳ありませんが コードでのご回答お願いできませんでしょうか 仕事つらいです。
- n-jun
- ベストアンサー率33% (959/2873)
紙(Excelでも良いけど)にガントチャートを作成してみて、 じっくり眺めてみるとヒントが出てくるかも。
お礼
ご回答ありがとうございます インターネットで以下のような資料も見たのですが 図にしたものをコードにするのがよくわからないため投稿 させていただきました。 エイチテーテーピー://woodbook.kir.jp/program/date.html お忙しい中申し訳ありませんが コードでのご回答お願いできませんでしょうか
- kmee
- ベストアンサー率55% (1857/3366)
わからないのはどこなのでしょうか? 開始日Aから終了日Aの期間 と 開始日Bから終了日Bの期間 が重なっているかどうか、プログラムではなく、紙と鉛筆で調べるときはどうしてます?
お礼
ご回答ありがとうございます。 今回のプログラムは期間1つのチェックもわからないのに 期間3つのチェックをするということで全然アルゴリズム が浮かんできません お忙しい中申し訳ありませんが コードでのご回答をお願いできませんでしょうか。
お礼
ご回答ありがとうございます。 貴方がおしゃっる通り私はプログラマには向いていないと 思っています。全然アルゴリズムがわかりませんし 皆さんの回答説明を読んでも理解がなかなかできません (日本語での説明) 読解力ないし論理的思考力ないし記憶力ないし 体力ないし心の病気持ってるしで毎日仕事がつらいです。 いつかプログラミングができるようになると思い 先輩のいやみにも耐えていますが・・・ 毎日つらいです。家で寝てたいと思います。(約8年引きこもり経験) ちょっと愚痴を言ってしまいました。 申し訳ありません。 やはりアルゴリズムが思い浮かばないのでコードでのご回答 お願いできませんでしょうか。お忙しい中申し訳ありません。 2年目としてはスキルなさすぎですよね