![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
ある期間(複数)を入力したら、その合計を表示させたいのですが、
良い方法はないでしょうか。よろしくお願いします。
サンプルはこのような感じです。
-------------------
期間1:
西暦
<input name="kikan01_01" type="text" id="kikan01_01" />年
<input name="kikan01_02" type="text" id="kikan01_02" />月
~ 西暦
<input name="kikan01_03" type="text" id="kikan01_03" />年
<input name="kikan01_04" type="text" id="kikan01_04" />月
期間2:
....
期間3
....
合計年数
<input name="nensuu" type="text" id="nensuu" />年
<input name="kagetsu" type="text" id="kagetsu" />ヶ月
No.1ベストアンサー
- 回答日時:
よくわからないけど…
そのまま計算するのでは、まずいのかしら?
とりあえず、プリミティブな計算例
(入力値のチェックは適当なので、そっくり入替えてください)
<html>
<script type="text/javascript">
function hoge() {
var d=[];
for (var i=1;i<5; i++){
var v=document.getElementById('kikan01_0'+i).value;
d[i-1]=(isNaN(v))?1:parseInt(v);
if (i%2==0) d[i-1] = (d[i-1]-1)%12 + 1;
}
var nen=d[2]-d[0]; var tuki=d[3]-d[1];
if (tuki<0) {nen--; tuki+=12;}
document.getElementById('nensuu').value=nen;
document.getElementById('kagetsu').value=tuki;
}
</script>
<body>
期間1:<br />
西暦
<input name="kikan01_01" type="text" id="kikan01_01" />年
<input name="kikan01_02" type="text" id="kikan01_02" />月
~ 西暦
<input name="kikan01_03" type="text" id="kikan01_03" />年
<input name="kikan01_04" type="text" id="kikan01_04" />月
<p />
<button onclick="hoge()">計 算</button><br />
合計年数
<input name="nensuu" type="text" id="nensuu" />年
<input name="kagetsu" type="text" id="kagetsu" />ヶ月
</body>
</html>
意味が違ってたら失礼。
この回答への補足
ありがとうございます。下記のように意図していたことができました。
・表示例
期間1に「2000年」「1月」~「2000年」「5月」と入力
↓
「計算」を押す
↓
合計年数に「0年」「4ヶ月」と表示。
ですが、更に例えば
期間2に「1997年」「1月」~「2000年」「5月」と入力
↓
「計算」押す
↓
合計年数に期間1と合わせて、「3年」「8ヶ月」と表示
このようなことも可能でしょうか?知識不足で度々申し訳ないのですが、よろしくお願いいたします。
No.2
- 回答日時:
No1です。
>このようなことも可能でしょうか?
当然可能です。
構成が同じなら、同様の要領でできます。(←当たり前ですが…)
沢山ある場合は、それぞれのセットに識別子(=idまたはthis)を設定しておいて、これを引数にして一つのfunction内で処理するようにしてしまった方が効率的ですね。
なお、年月の計算は、最初に 「年×12+月」のように月換算した一つの変数にしておいて月単位で計算し、最後に Math.floor() や %12 で年と月に戻してやるのが普通の考え方かも。
この回答への補足
いろいろ試したのですが、どうもうまくいきません。
期間2のinputにid="kikan01_05"、kikan01_06…と連番をふるだけではダメですよね??
欲を言いますと、管理上、期間2はkikan02_01…、期間3はkikan03_01…としたいのですが。
サンプルを書いていただけると助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleモバイル検索の検索結果...
-
【jQuery】input nameの文字列...
-
JavaScriptにて動的に配列を作...
-
テキストボックスの入力をリセット
-
二つの入力欄に、同時に同じ文...
-
ボタンを押すとテキストボック...
-
doPostBack 関数について
-
jqueryでtextareaのcols、rows...
-
VBA IE フォーム名(NAME)が変...
-
name属性のないformタグの、中...
-
Javascriptでのbuttonのname属...
-
ASP.NETでNAME属性を固定にしたい
-
hiddenを動的に作成したい
-
submitボタン押下時にPOSTされ...
-
imgタグ内 name とidの違い
-
新しくフォルダを作成したい
-
カーソルが自動的に移動する方法
-
フォームの一部をPOSTで送信で...
-
出発駅A、到着駅Bを選択すると...
-
ファイル選択ダイアログが表示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【jQuery】input nameの文字列...
-
javascriptの値をformのinput h...
-
Javascriptでのbuttonのname属...
-
新しくフォルダを作成したい
-
submitボタン押下時にPOSTされ...
-
JavaScriptにて動的に配列を作...
-
テキストボックスの入力をリセット
-
ラジオボタンでクリックした値...
-
jqueryでtextareaのcols、rows...
-
二つの入力欄に、同時に同じ文...
-
テキストボックスの値同士を比...
-
出発駅A、到着駅Bを選択すると...
-
ボタンを押すとテキストボック...
-
name属性のないformタグの、中...
-
フォームの一部をPOSTで送信で...
-
ファイル選択ダイアログが表示...
-
ASP.NETでNAME属性を固定にしたい
-
cookie使用時にundefinedと表示...
-
動的にTabindexの値を変えたい!
-
テキストエリアをenterキーでフ...
おすすめ情報