AutoHotKeyで今日の日付を簡単に入力する

こんにちは、生焼けにあたって2、3日ダウンしていた生焼けです。

今回はAutoHotKeyで今日の日付を簡単に入力する方法をご紹介します。

実例以外は基本キーの指定や、「return」を省略しています。

AutoHotkeyについてはこちらの記事で解説しています。

スポンサーリンク

実例

「解説はいいから、実際の書き方だけ知りたい」という方のために先に実例をいくつか上げておきます。

シンプルに今日の日付を入力する

Ctrl+tで今日の日付をyyyymmdd形式(2022年1月1日→20220101)で入力するショートカットの書き方は

^t::
FormatTime,Now,,yyyyMMdd
Send,%Now%
Return

のように書きます。

例えば、今日が2022年12月1日だった場合、

20221201

と入力されます。

特定のフォーマットで今日の日付を入力する

Ctrl+tで「今日は20xx年x月x日です。」のように入力する書き方は

^t::
FormatTime,Now,,今日はyyyy年MM月dd日です。
Send,%Now%
Return

のように書きます。

例えば、今日が2022年12月1日だった場合、

今日は2022年12月01日です。

と入力されます。

今日の曜日を漢字一文字で入力する(日本語版の場合)

Ctrl+tで今日の曜日を漢字一文字で入力する書き方は

^t::
FormatTime,Now,,ddd
Send,%Now%
Return

のように書きます。

例えば、今日が2022年12月1日木曜日だった場合、

と入力されます。

今日の曜日を省略された英語で入力する(日本語版の場合)

Ctrl+tで今日の曜日を省略英語で入力する書き方は

^t::
FormatTime,Now, L0x0409,ddd
Send,%Now%
Return

のように書きます。

例えば、今日が2022年12月1日木曜日だった場合、

Thu

と入力されます。

特定のソフトでのみ今日の日付を入力する

Windows標準のメモでのみ動作し、Ctrl+tで今日の日付をyyyymmdd形式(2022年1月1日→20220101)で入力するショートカットの書き方は

#IfWinActive ahk_exe notepad.exe

^t::
FormatTime,Now,,yyyyMMdd
Send,%Now%
Return

#IfWinActive

のように書きます。

例えば、今日が2022年12月1日だった場合、

20221201

と入力されます。

明日の日付を入力する

Ctrl+tで明日の日付をyyyymmdd形式(2022年1月1日→20220101)で入力するショートカットの書き方は

^t::
Now := A_Now 
EnvAdd, Now , 1,days
FormatTime,Tomorrow, %Now%, yyyyMMdd
Send,%Tomorrow%
Return

のように書きます。

例えば、今日が2022年12月1日だった場合、

20221202

と入力されます。

構文

この章ではコマンド「FormatTime」の書き方について解説します。

日付を入力するコマンド「FormatTime」の構文は

FormatTime, 変数, タイムスタンプ, 出力の仕方の指定

となります。

それぞれの項目について解説していきます。

変数

出力したい変数名を指定できます。

「Now」「Today」「kyou」など、自分のわかりやすい文字列を指定します。

タイムスタンプ

出力したい日付を指定します。

省略すると現在の時間が指定されます。

日付と時間を含めたYYYYMMDDHH24MISS形式で指定できますが、20221201(2022年12月1日のこと)のように時間を省略した形でも認識するようです。

出力の仕方の指定

出力したい日付の書き方を指定できます。

様々な書き方がありますが、「yyyyMMdd」を用いた書き方が使いやすいです。

詳しい書き方は次の章でご紹介します。

参考:

FormatTime - AutoHotkeyJp

「出力の仕方の指定」の書き方

この章では、下記の「出力の仕方の指定」の部分の書き方を解説します。

FormatTime, 変数, タイムスタンプ, 出力の仕方の指定

様々な書き方がありますが、今回は日付に関するもので使いやすいものをご紹介します。

基本の書き方

年を表す「y」月を表す「M」日付や曜日を表す「d」を組み合わせて出力したい書き方を指定できます。

例えば、2022年12月1日を20221201と表示させたいならば

FormatTime, Now, ,yyyyMMdd
Send,%Now%

と「y」や「M」を組み合わせて書いていきます。

それぞれ「y」や「M」などの数で書き方が指定されます。

つまり、「y」4つで西暦4桁を、「y」2つで西暦の下2桁を表す…といったような感じです。

それぞれ「y」「M」「d」の書き方について下記で解説していきます。

わかりやすいように以下からは「Send,%Now%」部分は省略しています。

yの個数で年の書き方を指定することができます。

yyyy(4桁で書く)

2022年の場合「2022」と出力されます。

FormatTime, Now, , yyyy

yy(2桁で書く)

2022年の場合「22」と出力され、2002年の場合「02」と出力されます。

FormatTime, Now, , yy

y(1~2桁で書く)

2022年の場合「22」と出力され、2002年の場合「2」と出力されます。

FormatTime, Now, , y

Mの個数で月の書き方を指定することができます。

MM(2桁で書く)

12月の場合「12」と出力され、1月の場合「01」と出力されます。

FormatTime, Now, , MM

M(1~2桁で書く)

12月の場合「12」と出力され、1月の場合「1」と出力されます。

FormatTime, Now, , M

MMMM(X月表記で書く)※日本語版のみ

ソフトのバージョンが日本語版のみですが、漢字で月名を出力することができます。

12月の場合「12月」と出力され、1月の場合「1月」と出力されます。

FormatTime, Now, , MMMM

月(英語)

月名を英語で出力したい場合、「タイムスタンプ」の項目に「L0x0409」を追加します。

FormatTime,変数, L0x0409,出力の仕方の指定

MMM(英語の短縮形で書く)

12月の場合「Dec」と出力され、1月の場合「Jan」と出力されます。

FormatTime, Now, L0x0409, MMM

MMMM(英語で書く)

12月の場合「December」と出力され、1月の場合「January」と出力されます。

FormatTime, Now, L0x0409, MMMM

日にち

dの個数で日にちの書き方を指定することができます。

dd(2桁で書く)

31日の場合「31」と出力され、1日の場合「01」と出力されます。

FormatTime, Now, , dd

d(1~2桁で書く)

31日の場合「31」と出力され、1日の場合「1」と出力されます。

FormatTime, Now, , d

曜日(漢字) ※日本語版のみ

ソフトのバージョンが日本語版のみですが、漢字で曜日を出力することができます。

ddd(漢字一文字で書く)

日曜日の場合「日」と出力されます。

FormatTime, Now, , ddd

dddd(漢字で書く)

日曜日の場合「日曜日」と出力されます。

FormatTime, Now, , dddd

曜日(英語)

曜日を英語で出力したい場合、「タイムスタンプ」の項目に「L0x0409」を追加します。

FormatTime,変数, L0x0409,出力の仕方の指定

ddd(英語の短縮形で書く)

日曜日の場合「Sun」と出力されます。

FormatTime, Now, L0x0409, ddd

dddd(英語で書く)

日曜日の場合「Sunday」と出力されます。

FormatTime, Now, L0x0409, dddd

日付を文字と組み合わせて書く

日本語

英語以外の文字であれば、そのまま出力したい文章の間に「y」や「m」を挟めばOKです。

FormatTime,Now,,今日はyyyy年M月dd日です。

今日が2022年12月1日の場合、「今日は2022年12月01日です。」と出力されます。

英語

英語であれば誤作動することがあるので、「’」で囲んで書きます

FormatTime,Now,,'Today is 'yyyyMMdd

2022年12月1日の場合、「Today is 20221201」と出力されます。

「’」で囲まなかった場合、「To1a22 i29 yyyyMMdd」のように「d」や「y」などに反応してしまいます。

明日の日付を書きたい

明日の日付を出力したい場合は、いくつか組み込み変数(ソフト側が用意している変数)や他のコマンドを使用する必要があります。

やり方としては、

今日の日付を組み込み変数で取得今日の日付に1日分を足す「FormatTime」で出力したい形に整える

…といったものになります。

現在の日付を表す組み込み変数

現在の日付を表す組み込み変数は「A_Now」です。

Send,%A_Now%

とすると、現在の日付が日付と時間を含めたYYYYMMDDHH24MISS形式で出力されます。

これに1日分を足していきます。

参考

組み込み変数 - AutoHotkeyJp

日付の計算

現在の日付を表す組み込み変数の「A_Now」に1日分を足したいのですが、

Tomorrow := A_Now+1
Send,%Tomorrow%

としても、日付に1日分が足されることはありません。

そこで、日付を計算できるコマンド「EnvAdd」を使用します。

EnvAddコマンド

EnvAddコマンドで日付を足すには下記のように書きます。

EnvAdd, 足したい対象(変数) , 足したい数,days

「足したい対象」には日付の入った変数を、「足したい数」の方には足したい日数を指定します。

例えば、今日の日付に1日分を足すには

Now := A_Now
EnvAdd, Now , 1,days

のように書きます。

これは、「Now」という変数に今日の日付を表す組み込み変数である「A_Now」を入れ、「EnvAdd」コマンドで1日分を足す…ということを書いています。

参考

EnvAdd - AutoHotkeyJp

明日の日付を書くには

上記のことを利用して、明日の日付をyyyymmdd形式(2022年1月1日→20220101)で出力するショートカットを書くと、

Now := A_Now 
EnvAdd, Now , 1,days
FormatTime,Tomorrow, %Now%, yyyyMMdd
Send,%Tomorrow%

のようになります。

応用

今日の日付のフォルダーを作成する

今日の日付の名前のフォルダーを、DドライブのfolderAの中に作成するショートカットの書き方は

^+!q::
FormatTime,Now, , yyyyMMdd
FileCreateDir,D:\folderA\%Now%
return

のように書きます。

まとめ

今回は、AutoHotKeyで日付をあれやこれやする方法を解説しました。

ファイルの操作などと組み合わせると、「フォルダーを今日の日付で作成」といったこともできてすごく便利だと思います。

タイトルとURLをコピーしました