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)
デフォルトの日付の場合には、次のように「今日」と表示されるのが自然です。
次のように条件分岐させます。
ダウンロード
各段階を個別のマクロにしていますので、試してみてください。
ここから先は
DTP Transit 定期購読マガジン
マガジン限定記事やサンプルファイルをダウンロードできます。
定期マガジンを購読されるとサンプルファイルをダウンロードいただけます。 https://note.com/dtp_tranist/m/mebd7eab21ea5