kintone有効活用。日付から曜日を計算する。
日付フィールドから、曜日を計算する
以前、kintone有効活用。日付を自動計算で取り扱うの記事で、自動的に曜日を計算することができることに触れました。
今回はその具体的な方法を解説します。
日付を確定する条件を考える
まずは曜日を特定する条件を考えてみます。
kintone有効活用。日付を自動計算で取り扱うでご紹介したとおり、kintone上の日付は1970年1月1日午前0時0分0秒からの経過秒数で表現されています。
1970年1月1日は木曜日ですので、ここから何日ずれているのかわかれば、指定した日付の曜日が特定できそうです。
では、指定の日付が1970年1月1日からの経過日数を計算しましょう。
1日は60秒、60分、24時間なので、これらで割ると経過日数がわかります。
指定の日付のフィールドコードを「日付」と設定します。
日付 / (60 * 60 * 24)
これで経過日数がわかりますが、余分な小数点以下は削除してしまいましょう。
rounddown(日付 / (60 * 60 * 24))
1週間は7日間なので、これを7で割った余りが0の時が木曜日になります。
kintoneには剰余を求める演算子・関数は存在しないのでここから一工夫が必要になります。
直近の木曜日を計算する方法を考えてみましょう。
経過日数を7で割ると経過週数がわかります。日付同様に小数点以下は不要なので削除します。
rounddown((日付 / (60 * 60 * 24)) / 7)
これに7をかけることで、直近の木曜日がわかります。
rounddown((日付 / (60 * 60 * 24)) / 7) * 7
最初に求めた経過日数から、直近の木曜日を引くと設定した日付の曜日が判明します。
rounddown(日付 / (60 * 60 * 24)) – (rounddown((日付 / (60 * 60 * 24)) / 7) * 7)
結果が
0の時は「木曜日」
1の時は「金曜日」
2の時は「土曜日」
3の時は「日曜日」
4の時は「月曜日」
5の時は「火曜日」
6の時は「水曜日」
となります。
実際の式に落とし込む
曜日判定の条件がわかりましたので実際の式に落とし込んでみましょう。
あとはif文で分岐するだけです。
if((rounddown(日付 / (60 * 60 * 24)) - (rounddown((日付 / (60 * 60 * 24)) / 7) * 7)) = 0,"木曜日",
if((rounddown(日付 / (60 * 60 * 24)) - (rounddown((日付 / (60 * 60 * 24)) / 7) * 7)) = 1,"金曜日",
if((rounddown(日付 / (60 * 60 * 24)) - (rounddown((日付 / (60 * 60 * 24)) / 7) * 7)) = 2,"土曜日",
if((rounddown(日付 / (60 * 60 * 24)) - (rounddown((日付 / (60 * 60 * 24)) / 7) * 7)) = 3,"日曜日",
if((rounddown(日付 / (60 * 60 * 24)) - (rounddown((日付 / (60 * 60 * 24)) / 7) * 7)) = 4,"月曜日",
if((rounddown(日付 / (60 * 60 * 24)) - (rounddown((日付 / (60 * 60 * 24)) / 7) * 7)) = 5,"火曜日", "水曜日")
)
)
)
)
)
日付を変更すると曜日も連動します。
ゴートップではkintoneを活用した業務の効率化のご相談を承っております。
現在の業務に課題を抱えている方は是非ゴートップにお問い合わせください。
詳しくは当社kintoneソリューションサービスのページをご覧ください。
さまざまな方や企業の多様なニーズにお応えする「エスコートン」サービスの提供を開始しました。
お悩みに合わせた3つのサービスメニューをご用意しました。