8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2020-11-04

はじめに

自己紹介です

main_image.jpg

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

associate.png appdesignsp.png customization.png

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

やりたいこと

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

完成!

曜日.gif

考え方

  • 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), "火曜日", "水曜日")
				)
			)
		)
	)
)

おわりに

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

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

main_image (1).jpg

8
7
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?