• 締切済み

期間重複チェックがわかりません

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

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.6

そうそう、老婆心ついでに。 あなたが転職を考えなければならない理由は、もうひとつあります。 会社の方から、あなたを雇うのをやめる可能性がある、ということです。 ○業務内容の多くは対外的に秘密です。  あなたがここで質問すること自体が、秘密の漏洩にあたるかもしれません それとも、上司等にここで質問しても問題無いことを確認していますか? ○頼まれて作っているのなら、頼んだ人がいるはずです。  関係者が見れば、これが自分に関係するものだと気付くでしょう。  こんなことをネットで質問するようなプログラマのいる業者に、信頼して仕事をまかせられるでしょうか? 怒って、契約破棄や損害賠償請求してきてもおかしくないです。 このように、会社に損害を与えるようなことを、あなたはやってしまいました。 うまくすれば、厳重注意の上で始末書提出、で済むかもしれませんが、最悪は、懲戒免職の上に損害賠償ということもあります。

  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.5

>やはりアルゴリズムが思い浮かばないのでコードでのご回答お願いできませんでしょうか。 >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のスタートをいつにずらせば「重複あり」になるのか。 ・「重複あり」と「重複なし」の境目は? するべき処理を「視覚的にイメージできる」ようになれば一歩前進です。 全くイメージができないままここでコードの話をしてもほとんど意味がありません。 自分でじっくり考えて納得したアルゴリズムは、 あなたにとって、今後ずっと使える引き出しの一つになります。 引き出しが増えれば増えるほど、プログラマーとしての自信も出てくるでしょう。

回答No.4

職業としてやっていく気なら時間が無くったって怒られたって自分で考えなきゃだめだよ。 まずは先輩に聞こうよ。 こんなところで回答待ってる時間あったら手と頭を動かすこと。 このままじゃやっていけないよ? 難しく考えずに各項目に入力されていたらそれぞれ1つずつチェックしていけば? そこで重複してたらエラーなわけだし。 期間1と期間2をチェック 期間1と期間3をチェック 期間2と期間3をチェック http://blog.yaju.jp/200812/article_13.html これみて作っているものに組み込んで。 エラー処理なんかの仕様はわからんから。 ここまで情報があってもソースくれっていうなら仕事考え直したほうがいいよ。 (あと極端にお礼率少ないし、無償で全部作ってくれっていうのもねぇ) 今から自分で考えることを捨ててしまうとだめプログラマーになっちゃう。 がんばって

tkwavek
質問者

お礼

ご回答ありがとうございます。 貴方がおしゃっる通り私はプログラマには向いていないと 思っています。全然アルゴリズムがわかりませんし 皆さんの回答説明を読んでも理解がなかなかできません (日本語での説明) 読解力ないし論理的思考力ないし記憶力ないし 体力ないし心の病気持ってるしで毎日仕事がつらいです。 いつかプログラミングができるようになると思い 先輩のいやみにも耐えていますが・・・ 毎日つらいです。家で寝てたいと思います。(約8年引きこもり経験) ちょっと愚痴を言ってしまいました。 申し訳ありません。 やはりアルゴリズムが思い浮かばないのでコードでのご回答 お願いできませんでしょうか。お忙しい中申し訳ありません。 2年目としてはスキルなさすぎですよね

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

その解説、書き方がちょっとまぎらわしいです。 > 日付の開始日 ≦ (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)が重複している ですよね?この程度で「アルゴリズム」とはとても呼べません。 老婆心ながら。 今回のことは、「算数」の領域だと思います。 これができないようなら、プログラマには向いていない、と言わざるを得ません。 転職するか、算数からやりなおすことをお勧めします。 > コードでのご回答をお願いできませんでしょうか。 これは、あなたの代りに仕事をしろ、ってことですよね? 適正な報酬が貰えるならやりますけど

tkwavek
質問者

お礼

お忙しい中何度もご回答いただきありがとうございます。 私はプログラマ向いていません自分でもわかっています。 けど、生活のために生きていくためにこの職業にしがみついています。 読解力がないせいで貴方の貴重なご回答が理解できません。 アルゴリズムが浮かんできません。 お忙しい中本当に申し訳ありませんが コードでのご回答お願いできませんでしょうか 仕事つらいです。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

紙(Excelでも良いけど)にガントチャートを作成してみて、 じっくり眺めてみるとヒントが出てくるかも。

tkwavek
質問者

お礼

ご回答ありがとうございます インターネットで以下のような資料も見たのですが 図にしたものをコードにするのがよくわからないため投稿 させていただきました。 エイチテーテーピー://woodbook.kir.jp/program/date.html お忙しい中申し訳ありませんが コードでのご回答お願いできませんでしょうか

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

わからないのはどこなのでしょうか? 開始日Aから終了日Aの期間 と 開始日Bから終了日Bの期間 が重なっているかどうか、プログラムではなく、紙と鉛筆で調べるときはどうしてます?

tkwavek
質問者

お礼

ご回答ありがとうございます。 今回のプログラムは期間1つのチェックもわからないのに 期間3つのチェックをするということで全然アルゴリズム が浮かんできません お忙しい中申し訳ありませんが コードでのご回答をお願いできませんでしょうか。

関連するQ&A

  • 期間重複チェック。コード以外での回答はご遠慮下さい

    期間重複チェック。コード以外での回答は遠慮下さい VB2005+SQLServer2005で開発を行っています。 期間を3つ入力してデータを抽出する プログラムを作っているのですが 期間重複チェックがわかりません 期間(1)~期間(3)まであります(抽出条件) 1,2,3各期間重複する場合は再入力させるとしか 仕様書に書かれておらず プログラミングできず困っています。 期間(1) txtStartDate1.text txtEndDate1.text 期間(2) txtStartDate2.text txtEndDate2.text 期間(3) txtStartDate3.text txtEndDate3.text 実を言うとvisual basicのカテゴリでも同じような 質問をしたのですがプログラムコードの回答が得られず 困っています。プログラマに向いていないというような 回答も見受けられましたがどうしても プログラムコードでの回答がほしいです 皆さんお忙しい中申し訳ありませんが プログラムコードでのご回答をお願いいたします。 コード以外でのご回答はご遠慮ください 私はこの仕事に向いていないのでしょうか 毎日つらいです。

  • 従事期間の重複チェック、表示

    エクセルで多人数の技術者の配置開始日、終了日を入力した表から、特定技術者を抽出しその者の重複期間をチェック、表示させたいのです。定年過ぎのソフト初心者が出来そうなやり方を教えて下さい。

  • 重複チェックはこれでいいの?

    重複チェックはこれでいいの? VB2010とSQL Server R2で開発しています。 商品の二重登録を防ぐために重複検索をしています。 '重複チェック '■Shohin_name の重複チェック whereString = "" whereString = whereString & "Shohin_name = '" & txtShohinName.Text & "'" rtn = dbtShohin.getDoubleFind(whereString) でこの後以下のSQLに渡しています。 sql = "" sql = sql & " SELECT * " sql = sql & " FROM " sql = sql & " tbl_shohin" sql = sql & " WHERE " & whereString 当然Shohin_name はstringですし、SQL Server中は「varchar」です。 既に「ABCD」という商品が登録されているところに、「ABCD」と全角文字の商品を 登録しようとすると、重複チェックではねられてしまいます。同じものがある、といってきます。 これって、おかしくないですか? 本来半角と全角ではぜんぜん別物ですよね。 何がいけないんでしょうか? それともこういうものなんでしょうか? 教えて下さい。 よろしくお願いします。

  • VB6 重複チェックについて

    お世話になります。 次の処理をVisual Basic6.0で教えてください。 1.Text1にキー入力した値をコマンドボタンクリックすると、Text1の値を保存します。 2.次にText1に新たに入力してコマンドボタンクリックで前項で保存した値と重複して   いないかチェックして重複無しならText1の値を保存します。 3.Text1に新たに入力して・・・・重複チェックして・・・・ といった具合に保存する値と重複チェックする対象の値がどんどん増えていきます。 さすがに10,000件はいかないですが。 保存先は読み書き込みの時間も考慮してVB内のTextBOXが第1希望、外部のtxtファイルやcsvファイルは第2希望としたいです。 If Text1=保存値 Then  処理 else  処理 End If 保存値をText2として行いましたが、完全一致でないとダメでした。 入力値:保存値=1:n(入力値が複数の保存値と重複したかどうか)が知りたいです! お手数おかけしますが、何卒よろしくお願いします。

  • システムの仕様がわかりません(新人)

    vbでシステム開発をしています 他の人が書いたプログラムの構文は本を読んだり ネットで検索して何とか解決できるのですが システムの仕様みたいなものがわかりません コードが0の時に何々するとか区分が何々の時 何々するみたいなことが全然わかりません プログラムの仕様書は忙しくないらしいです どうすれば一人前のプログラマーとして プログラミングできるようになるでしょうか 教えてもらいながらプログラミングしてます。 外注の人はほとんど聞かずにゴリゴリと プログラミングしてます。 外注の人のようになりたいです

  • 日付のチェックなのですが

    日付の入力チェックについて教えてください。 アクセス2000のVBでプログラムを作っているのですが、 二つのテキストボックスがあり日付をFrom、Toで入力してもらい その入力された期間が1ヶ月以上だったらエラーとしたいのですがいい方法はないでしょうか? 入力形式は2001/01/01という形です。 月またがりの一ヶ月以内(2001/01/31~2001/02/10等)はエラーとはしません。 すみませんがどなたか良い方法をご存知でしたら教えて下さると助かります。 よろしくお願いします。

  • 入力値チェック

    VBにて、テキストフィールドに入力した値を チェックするプログラムを作りたく、記載を致しました。 わからない点として、 (1) 値を入れ終わった直後に入力チェックが入るようにする コードをどうかけばいいのか? (2) 入力チェックは、"1~5"の値入力のみを受付ける。 それ以外は、"入力を受け付けない"というメッセージを 促し、テキストフィールドの値を空にする。 の2点です。 このチェック処理を作るための手順についてお伺いしたく 記載を致しました。 ご教授の程お願い致します。

  • エクセルで重複のチェックをしたい

    初心者なので、拙い内容ですが教えてください。 ・エクセル2003 二つのシートにそれぞれA列に企業名、B列に支店名、 C列に郵便番号、D列に住所が入力されています。 二つのシートはほぼ同じ内容で、シート1は3000件の全データ、 シート2は抽出された1300件のデータが入力されています。 やりたいことは3000件のうちの1300件の重複データを シート1の全データの空白列に「重複」や  重複データには行に色をつけて表示させる、などとにかく 重複をわかりやすく表示させたいのです。 過去ログみましたが、いまいち理解できませんでしたので わかりやすく教示してくださると助かります! ちなみに二つのデータをひとつにし、フィルタオプションの 「重複するレコードは・・」は検討違いだったようでうまくいきませんでした・・ ひとつの列に対する重複チェックは理解できたのですが.. 支店によって住所が違ってくるので、たちどまってしまいました。

  • 重複チェックプログラム

    ご経験ある方いらっしゃいましたらアドバイスください。 環境:linux, gcc 64bitの整数データ(符号なし)を入力とし、64bitの整数データを出力する関数を作成中です。 入力データに対して、出力データは絶対に重複しないという条件で関数を作成したのですが、 (入力と出力は1対1になる) その条件のチェックができない状態で困っています。 試した方法は、以下のとおりです。 (1)すべての入力データに対する出力データをテキストファイルに書き出す。 (2)再びすべての入力データを計算するのだが、今度は出力データを(1)で作成したテキストファイルと比較していく。 そのときテキストファイル内に出力データと同じデータが2つ以上あれば重複が存在する。 しかし、(1)の時点でlinuxのファイル制限2.1GBに引っかかってしまい、 これ以上進めることができませんでした。 同じような大量のデータに対して重複確認することは不可能なのでしょうか? もし、linuxのファイル制限がなくてもHDDの容量制限に引っかかってしまいそうです。 このような制限に依存せず、重複確認できる方法がありましたら教えてください。 質問が不明、不足な点がある場合にもご指摘おねがいします。宜しくお願いします。

  • チェックデジットについて

    一覧番号の桁数の中にチェクウデジットを設けようという話が合った場合に、仕様決めからプログラミングでのチェックの仕方まで、どのような段取りで進めれば良いか解りません。(初めて使うので) 知りたいこと。     1.チェックデジットの仕様の決め方。(最重要)   2.決めたらそれをどのようにプログラミングに落としていくのか。   3.チェックの仕方。   ※尚、開発言語はJAVAです。 解る方、やさしく、詳しく教えてください。

    • ベストアンサー
    • Java

専門家に質問してみよう