- 締切済み
業務処理ロジック(プログラミング)
プログラミング初心者です。ロジックも含め教えて頂けると助かります。 プログラミングに関する質問です。(ソースよりのトランザクション設計書を書きたいです。ロジック概要でも良いので教えて下さい。) 素人であるため、お手数お掛けしてしまい申し訳ございませんが、 何卒宜しくお願い致します。 ■ カレンダーテーブル(マスタ:テーブルの変更はなし)が用意されています。(本来は年月が2012年~2020年まで用意されています。)レコードは年月~営業累計まで63個、主キーは年月です。 年月 日付(1) 日付(2) ・・・・・・・・・・・・・・・・・ 日付(29) 日付(30) 日付(31) 201212 1 2 ・・・・・・・・・・・・・・・・・ 29 30 31 201301 1 2 ・・・・・・・・・・・・・・・・・ 29 30 201302 1 2 ・・・・・・・・・・・・・・・・・ (下記にカラムの続き(日付け(31)の隣のカラムから)を書きます) 営業累計(1) 営業累計(2) 営業累計(3) ・・・・・・・ 営業累計(30) 営業累計(31) 0 0 1 ・・・・・・・ 0 20 0 1 2 ・・・・・・・ 20 1 0 0 ・・・・・・・ (1)日付()レコードはカレンダーで、その日の値が入力されています。 (2)営業累計()レコードは、企業が自律的に定めた非営業日には0が入力されていて、それ以外の日を各月でカウントして入力されています。 ★上記条件の際、outputが以下になるような共通関数を作成したいですのですが全く分かりません。申し訳ございません。 INPUT(引数) ・基準となる起算年月日(20121207のような8桁) ・必要日数(09のような2桁) OUTPUT ・営業日付(基準年月日に必要日数を加算したもの:20121215のような8桁) →但し、加算した営業日付が非営業日の場合は翌営業日となる ・営業日付時の営業累計レコードの値 以上です。 宜しくお願い致します。 補足 必要日数が40日、200日など起算年月日の翌月、翌年等も考慮して、営業日付を求めたいです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nine999
- ベストアンサー率44% (512/1140)
カレンダーの必要性が判りませんが、単に表示を見ながら次の作業をするのでしょうか。 カレンダをJSで自動的に作る方法は色々とありますし、テーブルとしては各月の日数だけ判ればOKです。ただし、閏年の計算が必要なので、次のようにして変数で用意します。 myYear = 2012; //年数が入っているものとします lday = new Array(31,28,31,30,31,30,31,31,30,31,30,31); if ((myYear %4 == 0 && myYear %100 != 0) || (myYear %400 == 0)) {lday[1]++;} 基準となる日をどうやって入力するのでしょう? 自動的に取得する場合、日付関数を使います。手入力ならやりやすいようにpromptやフォームから取得して変数に入れます。 myDate = new Date(); myYear = myDate.getFullYear(); myMon = myDate.getMonth() + 1; myDate = myDate.getDate(); 数字が一桁の場合に2桁にする方法。 if (n < 10) n = "0" + n; 日付の加算は次のようにできます。 必要日数をどうやって決めるのか不明ですが、ここでは変数mに入ってるものとします。 m = 20; //20日 myDate = new Date("2012/12/7"); //日付は入力されたものを文字列として与える myDate.setTime(myDate.getTime() + m*24*60*60*1000); //mをミリ秒に直して加算 もう少し細かくやりたいことを絞ってもらったほうが解答しやすいと思います。 また、どんな理解をされているかも判らないため、手短に解答させていただきました。
- shimix
- ベストアンサー率54% (865/1590)
言語はなんですか?JavaScriptカテですが、JavaScriptで書くような内容とも思えません。 また「テーブル」というのが何らかのデータベースのテーブルなのかCSVファイルなのか固定長テキストファイルなのかもわかりません。 そのあたりを補足してください(もしくは適切なカテゴリで再質問してください)。