kintoneの基本機能のみで曜日を自動計算する


はじめに

自己紹介です

  • イシイケンタロウです。刷毛をつくっている会社の兼業情シスです
  • kintone認定資格は3つとも取得済です

  • その他にITストラテジストやシステム監査技術者などの国家資格をいくつか取得しています
  • kintoneのカスタマイズは社内向けのみで、プラグインは作ってません(作れません)

やりたいこと

基本機能のみで、日付選択時に曜日を自動計算したい

完成!

考え方

  • kintoneの日付は 「1970-01-01 0:00:00」からの経過秒数 が値として格納されているので、1970-01-01の曜日を予め調べて基準とします ⇒ ググったらすぐ出ます。木曜日です
  • 選択された日付の、1970-01-01からの経過日数を7で除算した剰余で曜日を算出します
  • 剰余0が木曜日、1が金曜日、・・・、6が水曜日です

実装

  • アプリに日付フィールド(日付)、計算フィールド(剰余)、文字列1行フィールド(曜日)を用意します
  • 剰余の計算式
ROUNDDOWN(日付 / (60 * 60 * 24))  - ROUNDDOWN(日付 / (60 * 60 * 24 * 7)) * 7
  • 「1970-01-01からの経過日数」から「1970-01-01からの経過日数を7で除算した商に7を乗算した積」を減算します
  • 「1970-01-01」以前の日付の場合、剰余が負の値になるので注意です
  • 0が木曜日は変わらずですが、-6が金曜日、・・・、-1が水曜日です
  • 「1970-01-01」以前の場合のみ剰余に7を加算しても良いけど、OR関数が楽かもです
  • 曜日の計算式
IF(剰余 = 0,"木曜日", 
    IF(OR(剰余 = 1, 剰余 = -6), "金曜日", 
        IF(OR(剰余 = 2, 剰余 = -5), "土曜日", 
            IF(OR(剰余 = 3, 剰余 = -4), "日曜日", 
                IF(OR(剰余 = 4, 剰余 = -3), "月曜日", 
                    IF(OR(剰余 = 5, 剰余 = -2), "火曜日", "水曜日")
                )
            )
        )
    )
)

おわりに

「日付」フィールドの日付に応じて、自動的に曜日を表示することはできません。

  • できまーす!
  • ということで 公式ヘルプ に勝ってしまいました
  • あと塗装用ローラーもつくってます