見出し画像

Keyboard Maestroでの日数計算

次のような計算をKeyboard Maestroで行います。

  • 今日から「●日後(●日前)」の日付は?

  • 指定日から「●日後(●日前)」の日付は?

  • 「●月●日」は、今日から●日後(●日前)?

今日から「●日後(●日前)」の日付は?

「ICUDateTimePlus」または「ICUDateTimeMinus」を使います。

今日が5月13日、2日後の日付を調べるには次のように記述します。

%ICUDateTimePlus%1%Days%yyyy年M月d日%

Keyboard Maestroで次のように設定すると

次のように処理されます。

図解すると、次のようになります。

さらに詳しくはサイトウさんのブログを参照なさってください。

念のため、公式ドキュメントはこちらです。

ダイアログボックス化+変数化

「●日後」を変数化し、ダイアログボックスで入力できるようにしましょう。

Keyboard Maestroで次のようにマクロを設定します。

これを実行すると、次のようなダイアログボックスが開きます。
「20」と入力して[OK]ボタンをクリックすると

次のように処理されます。

変数名を日本語で「日数」とするのは気持ち悪いですが、問題ありません。

「●日前」は?

数字の前に「-」を付ければ問題ありませんが、ちょっと面倒です。

そこでダイアログボックスに項目(ポップアップ)を追加し、「日後」「日前」を選択できるようにします。

「日前」のときに、「日数」に入れた値の正負を変換できるように「Set Variable To Calculation」アクションを指定します。

マクロを実行すると、次のようなダイアログボックスが開きます。

指定日から「●日後(●日前)」の日付は?


「%ICUDateTimeFor%」トークン

指定日の場合には「%ICUDateTimeFor%」トークンを利用します。

次のようにマクロを指定します。

実行すると、次のように処理されます。

ダイアログボックス化

利用者が「年月日」を入力できるように、それぞれを変数に設定し、ダイアログボックス化します。

マクロを実行すると、次のダイアログボックスが開きます。

[OK]ボタンをクリックすると、次のように処理されます。

便宜上「5」や「13」を入れていますが、実際には空白にしておきます。
年には「%ICUDateTime%yyyy%」を入れておくとよいでしょう。

「2022」は来年になると自動的にアップデートされます。

指定日からの計算

「%ICUDateTimeFor%」トークンに対して、次のように設定します。

%ICUDateTimeFor%TIME(年, 月, 日-日数)%yyyy年M月d日(eee)%

Keyboard Maestroのマクロは次のように設定します。

マクロを実行すると、次のダイアログボックスが開きます。

[OK]ボタンをクリックすると、次のように処理されます。

デフォルトは「今日」、利用者が指定してもよい

次のようにマクロを指定しておくとよいでしょう。

常にマクロ実行時の日付が入ります。

ここまでのまとめ

仕上げをして次の設定を行います。

  • クリップボードに算出した日付を入れる

  • このマクロで利用した変数を初期化(クリーンアップ)

メッセージに一工夫(1)

処理結果を表示するメッセージを次のようにしてみましょう。

まず、変数「指定日」を作成し、ダイアログボックスに入力した値から日付を作成します。

この変数を利用し、次のように設定します。

これでよさそうですが、「●日後」のとき、おかしなメッセージになってしまいます。

次のように分岐処理を行います。

メッセージに一工夫(2)

デフォルトの日付の場合には、次のように「今日」と表示されるのが自然です。

次のように条件分岐させます。

ダウンロード

各段階を個別のマクロにしていますので、試してみてください。

ここから先は

0字 / 1ファイル
月に10-20本くらいの記事を投稿しています。定期購読されると、更新のお知らせを受け取ったり、マガジン限定記事やサンプルファイルをダウンロードできます。 購読を開始した月に更新された記事から読むことができます(初月無料)。

DTP Transit 定期購読マガジン

¥100 / 月 初月無料

マガジン限定記事やサンプルファイルをダウンロードできます。

定期マガジンを購読されるとサンプルファイルをダウンロードいただけます。 https://note.com/dtp_tranist/m/mebd7eab21ea5