@rabirgoです。
次に投稿する記事の前振り。
TextExpander for Mac
カテゴリ: 仕事効率化
価格: ¥3,500
TextExpanderで週番号が取得できなさそうだったのでPerlで代替…と思ったら、出来るじゃん!
via: TextExpander Help: Date, Time, and Math Macros
- Date
%Y = Year, 4 digits (2011)
%y = Year, 2 digits (11)
%B = Month, long name (January)
%b = Month, short name (Jan)
%m = Month, 2 digits (01-12)
%1m = Month, 1-2 digits (1-12)
%A = Day, long name (Monday)
%a = Day, short name (Mon)
%d = Day, 2 digits (01-31)
%e = Day, 1 digit (1-31)
%j = numerical day of year
%date:<Unicode Date Format>%
(where <Unicode Date Format> is defined here: http://unicode.org/reports/tr35/#Date_Format_Patterns)
Unicode Date Format 以外の箇所だけ読んでて無かったから諦めてましたが、%date:<Unicode Date Format>%のパターンを使って出来ました。
スニペット登録
「%date:w%」もしくは「%date:ww%」と登録すれば良いようです。
- Content:%date:w%
- Label:[お好み] 私は week number と入れました(上記画像から少し変えました)
- Abbreviation:[お好み] 私は ,wn としました(week number)
「Unicode Date Format」の UTS #35: Unicode LDML: Dates を参照しました。
リンク先のテーブルの見方ですが、「Sym.」列が指定する文字で、「No.」は何個まで重ねられるか、ということのようです。
via: UTS #35: Unicode LDML: Dates
For example, if h is the hour, ‘h’ might produce
‘5’, but ‘hh’ produces ’05’.
とあるように、現在が5時だった場合、”%date:h%”だと”5″と出力され、”%date:hh%”だと”05″が出力される。
例を挙げてみます。こうすると
こうなります。
テキスト貼っておきます。ちなみに %@-2M は2ヶ月前を表しており、その後に %ほにゃらら を続けて好みの値を取得します。(週番号が2桁で取得できることの確認のため、合わせて載せました)
現在日時:%Y/%m/%d %p %I:%M:%S 週番号(1桁):%date:w% 週番号(2桁):%date:ww% 2ヶ月前の日時:%@-2M%Y/%@-2M%m/%@-2M%d %@-2M%p %@-2M%I:%@-2M%M:%@-2M%S 2ヶ月前の週番号(1桁):%@-2M%date:w% 2ヶ月前の週番号(2桁):%@-2M%date:ww% 現在時(1桁):%date:h% 現在時(2桁):%date:hh%
Date の種類が意外に少ないなーと思ったらこんなことだったんですな。
注意:ISO標準の定義は【月曜 始まり】
だそうなので、以下のような日曜始まりのイメージを持ってる方(私を含む)は気をつけましょう。
【2014/03/30 追記 ここから】
TextExpanderは日曜始まりで展開されました。[Mac]TextExpanderの週番号は日曜始まりの様子 | Rabirgo 参照。(上記の「気をつけましょう」は、TextExpanderが月曜始まりで週番号を展開すると考えて書いてました)
【2014/03/30 追記 ここまで】
via: UTS #35: Unicode LDML: Dates
8.4 Week of Year
Values calculated for the Week of Year field range from 1 to 53
for the Gregorian calendar (they may have different ranges for other
calendars). Week 1 for a year is the first week that contains at
least the specified minimum number of days from that year. Weeks
between week 1 of one year and week 1 of the following year are
numbered sequentially from 2 to 52 or 53 (if needed). For example,
January 1, 1998 was a Thursday. If the first day of the week is
MONDAY and the minimum days in a week is 4 (these are the values
reflecting ISO 8601 and many national standards), then week 1 of 1998
starts on December 29, 1997, and ends on January 4, 1998. However, if
the first day of the week is SUNDAY, then week 1 of 1998 starts on
January 4, 1998, and ends on January 10, 1998. The first three days
of 1998 are then part of week 53 of 1997.Values are similarly calculated for the Week of Month.
あとがき
冒頭で少し書いたように、当初は TextExpander の Shell Script を使って Perl のワンライナーで取得したサンプルを記事にしようと思ってましたが、フォーマットを転載した時点で Unicode Date Format に気づきました。ブログ書いてみるもんだ。
ちなみに、Perl は Date::Piece というモジュールをインストールして以下のコマンド。
[bash]
#!/bin/bash
perl -MTime::Piece -e ‘print localtime->week’
[/bash]
これだと万人向けじゃないから、TextExpander の機能で実現できることに気づいて良かった。
TextExpander for Mac
カテゴリ: 仕事効率化
価格: ¥3,500
TextExpander はちょっと高いけどおすすめ!
いじょ。