# 残日数の自動更新について

**URL:** <https://community.cybozu.dev/t/topic/533>\
**Category:** kintone 開発相談\
**Created:** [2017 年 9 月 11 日午前 2:59 UTC](https://community.cybozu.dev/t/topic/533 "2017-09-11T02:59:35Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1480](https://avatars.discourse-cdn.com/v4/letter/l/76d3ee/32.png) [@Legacy\_Account1480](https://community.cybozu.dev/u/Legacy_Account1480)\
**Post date:** [2017 年 9 月 11 日午前 2:59 UTC](https://community.cybozu.dev/t/topic/533/1 "2017-09-11T02:59:35Z")

</div>

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

タイトルの件について、日付フィールドから今日の日付との差分を計算して文字列に「○○日」と表示したいと考えております。

現在、追加、編集画面のchangeイベントでの計算表示は出来ていますが、これを自動で(※一覧画面を開いたタイミング等)で一括更新する方法はありますでしょうか。

現在のコード

```
(function() {
    'use strict';
    var events = [
        'app.record.create.show',
        'app.record.edit.show',
        'app.record.create.change.日付',
        'app.record.edit.change.日付'
    ];
    kintone.events.on(events, function(event) {
        var record = event.record;
        var date1 = new Date();
        var date2 = new Date(record['日付']['value']);
        var Diff = date2.getTime() - date1.getTime();
        var days = Math.floor(Diff / (1000 * 60 * 60 *24) + 1);
        record['残日']['disabled'] = true;
        record['残日']['value'] = days + '日';
        return event;
    });
})();

```

お手数でございますが、ご教授いただければ幸いでございます。

宜しくお願い致します。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1740](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account1740](https://community.cybozu.dev/u/Legacy_Account1740)\
**Post date:** [2017 年 9 月 12 日午前 8:47 UTC](https://community.cybozu.dev/t/topic/533/2 "2017-09-12T08:47:26Z")

</div>

Nao様

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

cstapの江田と申します。

以下のようなコードで実装できるかと思います。

```
(function() {
"use strict";
kintone.events.on('app.record.index.show', function(event){
var changed = false;
var getBody = {
"app": kintone.app.getId(),
};
kintone.api(kintone.api.url('/k/v1/records', true), 'GET', getBody, function(resp) {
var records = resp["records"];
var putBody = {
"app": kintone.app.getId(),
"records":[]
};
records.forEach(function(record){
var date1 = new Date();
var date2 = new Date(record.日付.value);
var Diff = date2.getTime() - date1.getTime();
var days = Math.floor(Diff / (1000 * 60 * 60 *24) + 1);
putBody.records.push({
"id": record.$id.value,
"record": {
"残り日数": {
"value":days
}
}
});
if(days != record.残り日数.value){
changed = true;
}
});
if(changed){
kintone.api(kintone.api.url('/k/v1/records', true), 'PUT', putBody, function(){
location.reload();
});
}
});
});
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1480](https://avatars.discourse-cdn.com/v4/letter/l/76d3ee/32.png) [@Legacy\_Account1480](https://community.cybozu.dev/u/Legacy_Account1480)\
**Post date:** [2017 年 9 月 13 日午前 12:04 UTC](https://community.cybozu.dev/t/topic/533/3 "2017-09-13T00:04:48Z")

</div>

江田篤史様

ご返信ありがとうございます。

ご教授いただいたコードで設定ができました。

ありがとうございます。

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2336](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account2336](https://community.cybozu.dev/u/Legacy_Account2336)\
**Post date:** [2022 年 5 月 2 日午前 3:26 UTC](https://community.cybozu.dev/t/topic/533/4 "2022-05-02T03:26:40Z")

</div>

江田様

お世話になっています

この件に関して追加で確認したいことがあり問い合わせしてみます

まだ初心者なので、簡単なことかもしれませんがご容赦いただきたいです

日付フィールドAから今日の日付との差分を計算して残日数文字列フィールドAに表示

日付フィールドBから今日の日付との差分を計算して残日数文字列フィールドBに表示

日付フィールドCから今日の日付との差分を計算して残日数文字列フィールドCに表示

と複数ある場合、江田様のコードのどの部分にどう付け加えたらよいでしょうか？

一応フィールドコードを変えて同じようなコードを3つ作ると動きましたが、jsファイルが3つできてしまうためもっとすっきり一つにまとめたいと思います。よろしくご教授の程お願いいたします
