# 時間の自己定義でトータルを求めたい

**URL:** <https://community.cybozu.dev/t/topic/4061>\
**Category:** kintone 開発相談\
**Created:** [2019 年 6 月 3 日午前 12:24 UTC](https://community.cybozu.dev/t/topic/4061 "2019-06-03T00:24:37Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1110](https://avatars.discourse-cdn.com/v4/letter/l/71e660/32.png) [@Legacy\_Account1110](https://community.cybozu.dev/u/Legacy_Account1110)\
**Post date:** [2019 年 6 月 3 日午前 12:24 UTC](https://community.cybozu.dev/t/topic/4061/1 "2019-06-03T00:24:37Z")

</div>

お世話になっております。

実現したい動きの定義をどう設定すればいいかわからなくて、投稿させていただきました。どなたかぜひご教示していただけると幸いです。

例えば 予定日数：１５日、使用時間：４時間⇒残日１４日となる。※定義としては使用時間が６時間を１日とし、ただ、使用時間は３日（１８時間）を超えることはできない。※使用時間は別にテーブルで登録しているので、ここはそのトータル時間になります。

今は単純なところしか書けなくて、使用時間の定義をどうすれば、いいのか詰まっております。お知恵お貸していただけるようどうぞよろしくお願い致します。

```
(function() {
"use strict";

kintone.events.on([
"app.record.edit.show","app.record.create.show",
'app.record.create.submit', 'app.record.edit.submit','app.record.index.edit.submit',
"app.record.edit.change.使用時間","app.record.create.change.使用時間",
"app.record.edit.change.残日","app.record.create.change.残日" ], function(event) {

var record = event.record;
var 予定日数 = record['予定日数'].value;
var 使用時間 = record['使用時間'].value;
var 残日 = record['残日'].value;
record["残日"]["disabled"] = true;

if (record.使用時間.value >= 0 && record.使用時間.value <= 18) {
残日 = 予定日数 - 使用時間 / 6;//ここ間違っていますが・・・
}else {
event.record.使用時間.error = '最大値18Hです！登録できません。';
}
record['残日'].value = 残日 ;

return event;
});

})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1051](https://avatars.discourse-cdn.com/v4/letter/l/9de053/32.png) [@Legacy\_Account1051](https://community.cybozu.dev/u/Legacy_Account1051)\
**Post date:** [2019 年 6 月 3 日午前 4:59 UTC](https://community.cybozu.dev/t/topic/4061/2 "2019-06-03T04:59:00Z")

</div>

こんにちは。

とりあえず、計算をするなら数値型に変換しましょう。

```
var record = event.record;
// var 予定日数 = record['予定日数'].value;
// var 使用時間 = record['使用時間'].value;
// var 残日 = record['残日'].value;
var 予定日数 = parseInt(record['予定日数'].value, 10);
var 使用時間 = parseInt(record['使用時間'].value, 10);
var 残日 = parseInt(record['残日'].value ,10);
record["残日"]["disabled"] = true;
  if (record.使用時間.value > 0 && record.使用時間.value <= 18) {
  残日 = 予定日数 - 使用時間 / 6;//ここ間違っていますが・・・
}else {
event.record.使用時間.error = '最大値18Hです！登録できません。';
}
// record['残日'].value = 残日;
record['残日'].value = parseInt(残日 ,10);

return event;

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1110](https://avatars.discourse-cdn.com/v4/letter/l/71e660/32.png) [@Legacy\_Account1110](https://community.cybozu.dev/u/Legacy_Account1110)\
**Post date:** [2019 年 6 月 4 日午前 2:24 UTC](https://community.cybozu.dev/t/topic/4061/3 "2019-06-04T02:24:37Z")

</div>

TK 様

いつも大変お世話になっております。

一番基本的なところ(数値型の変換)もできてなくて、恥ずかしい限りでございます。

ご指導誠にありがとうございます。

なんと数値型にすることでやりたいことできました。

いつも助けていただき、本当にありがとうございます。今後ともどうぞよろしくお願い致します。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1051](https://avatars.discourse-cdn.com/v4/letter/l/9de053/32.png) [@Legacy\_Account1051](https://community.cybozu.dev/u/Legacy_Account1051)\
**Post date:** [2019 年 6 月 4 日午前 4:07 UTC](https://community.cybozu.dev/t/topic/4061/4 "2019-06-04T04:07:55Z")

</div>

こんにちは。

無事実装できたようで何よりです。

少しずつでも理解していけば出来ることが増えるので、これからも頑張ってください！

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1110](https://avatars.discourse-cdn.com/v4/letter/l/71e660/32.png) [@Legacy\_Account1110](https://community.cybozu.dev/u/Legacy_Account1110)\
**Post date:** [2019 年 6 月 4 日午前 6:24 UTC](https://community.cybozu.dev/t/topic/4061/5 "2019-06-04T06:24:49Z")

</div>

TK 様

いつも大変お世話になっております。

TKさんみたいな有能な先輩たちがいるから本当にとても心強いです。頑張ります。

いつも本当にありがとうございます。
