UltraDate.js,UltraDate.ja.js を使って営業日/休業日を判定する

フォローする

(著者:サイボウズ kintone 開発チーム 太田 絵一郎)

概要

  • タイムカード等の業務アプリでは、会社の休業日を判定したいケースがしばしばあるかと思います。
  • 会社の休業日を判定するには普通、曜日だけでなく、国民の休日を取り扱う必要があります。しかし、国民の休日を取り扱うプログラムを自作するのは、必ずしも簡単ではありません。
  • UltraDate.js は、JavaScript標準のDateオブジェクトを拡張するライブラリです。さらに、付属のUltraDate.ja.jsを併せて使うことで、日本の国民の休日も取り扱えるようになります。
  • 本ページでは、kintoneに入力した日付が休業日かどうかを Cybozu CDN にストックされた UltraDate.js / UltraDate.ja.js を使って判定する、簡単なサンプルをご紹介します。

できること

  • 入力した日付が休業日かどうかを判定し、その結果を別の文字列(1行)フィールドに表示する。
  • 土曜日・日曜日・国民の休日に加えて、会社独自の休日(ここでは年末年始休暇)も休日と判定できるようにする。

準備

1. アプリを作成し、下の図のようにフィールドを配置します。なお、本サンプルで必須なフィールドは次の2つのみです:

  • 日付: 日付フィールド [フィールドコード:date]
  • 営業日/休業日: 文字列(1行)フィールド [フィールドコード:dayInfo]

2. 以下のカスタマイズJSファイルを作成し、ファイル名 checkHoliday.js で保存します。

3. 作成したアプリの「アプリの設定」>「詳細設定」>「JavaScript / CSSでカスタマイズ」から、下図を参考にスクリプトを設定します(順番も重要ですのでご注意下さい。)

結果

作成したアプリでレコードを作成し、日付を

  • 2016年2月11日(建国記念の日 → 休業日)
  • 2016年2月12日(金曜日 → 営業日)
  • 2016年2月13日(土曜日 → 休業日)

と入力すると、「営業日/休業日」フィールドの表示が図のように変わります。

また、例えば2016年12月29日を入力すると、スクリプトで追加した年末年始休暇である旨が表示されます(実際に試してみてください)。

終わりに

単純なサンプルですが、業務上は応用範囲の広い機能だと思います。なお例えば、土曜日が通常営業日であるような場合にも、少しの修正で対応することができます。詳細はUltraDate.js の公式ページをご参照ください。

本ページが少しでもお役に立てば幸いです。

このTipsは、2016年2月版で確認したものになります。

コメント

ログインしてコメントを残してください。
Powered by Zendesk