2012年09月16日

EmEditor・日付計算マクロ

 EmEditorのマクロで、日付の取得は、

document.selection.InsertDate(eeDateDateTime);

 などで可能だが、この場合「昨日の日付」など、計算する事はできない。
 そこで、Javascriptを使って取得するマクロを作ってみた。マクロと言うより、ほとんどJavascriptの記載になるけど。

EmEditorで日付の計算

// 昨日の日付書込マクロ
Today = new Date(); // 今日の日付取得
tYear = Today.getFullYear(); // 今日の年
tMonth = Today.getMonth(); // 今日の月
tDay = Today.getDate(); // 今日の日
Yesterday =
new Date(tYear , tMonth , tDay - 1); // 昨日の日付取得
yYear = Yesterday.getFullYear(); // 昨日の年
yMonth = Yesterday.getMonth(); // 昨日の月
yDay = Yesterday.getDate(); // 昨日の日

function zero(num) { // ゼロ処理用関数定義
if (num <= 9) {
zr = "0"; // 数値が9以下は"0"を追加
} else {
zr = ""; // 数値が9以上は無し
}
return zr; // "0"か""の文字列を返す
}

tMonth++; // 表示用に+1
yMonth++; // 表示用に+1
document.selection.Text =
"今日の日付は" + tYear + "/" + zero(tMonth) + tMonth +
"/" + zero(tDay) + tDay + "です\n"; // 日付の書込
document.selection.Text =
"昨日の日付は" + yYear + "/" + zero(yMonth) + yMonth +
"/" + zero(yDay) + yDay + "です\n"; // 日付の書込

 実行すると、
今日の日付は2012/09/16です
昨日の日付は2012/09/15です
 と、今日と昨日の日付が表示される。

 .getFullYearが年、.getMonthが月、.getDateが日付の取得だが、.getMonthに限っては1〜12月を「0〜11」で処理しているので、計算時は0〜11、表示時には+1しないといけない。

 また、これで取得すると、例えば「2012/9/1」など、日付によって桁数が変わるので、「2012/09/01」のように桁を合わせる、いわゆるゼロパディングの処理も追加している。今回は2桁だけなので処理も簡単だった。
 必要が無ければ、「function zero(num)」や表示部分の「zero( )」の部分を削除すればいい。




posted by 司隆 at 15:46 | Comment(0) | Computer
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。