---
title: テンプレート変数の拡張
category: ProTip
tags:
created_at: '2018-03-08T18:18:41+09:00'
updated_at: '2023-08-31T18:15:54+09:00'
published: true
number: 254
---

`%{day}` や `%{month}` など、時間に関係する全てのテンプレート変数は、以下のような記述で日付をずらすことが出来ます。

# 年・月・日・時間の加減

- 時刻の加減
    - `%{day:+2h}`   => 2時間後の日
    - `%{month:+2h}` => 2時間後の月
    - `%{Year:-3h}`  => 3時間前の年

- 日数の加減
    - `%{day:+2d}`   => 2日後の日
        - `%{day:+2bd}`   => 祝休日を除く2日後の日
    - `%{month:+2d}` => 2日後の月
    - `%{Year:-3d}`  => 3日前の年
- 月数の加減
    - `%{month:+2m}` => 2ヶ月後の月
    - `%{Year:-3m}` => 3ヶ月前の年
- 年数の加減
    - `%{Year:-3y}`  => 3年前の年
    - `%{weekday:+1y}` => 1年後の曜日

## 例: 2日後のYYYY/MM/DD
 
`%{Year:+2d}/%{month:+2d}/%{day:+2d}`

## 例: 3日前のYYYY/MM/DD
 
`%{Year:-3d}/%{month:-3d}/%{day:-3d}`

## 例: 祝休日を除く1日後のYYYY/MM/DD
 
`%{Year:+1bd}/%{month:+1bd}/%{day:+1bd}`

## 例: 祝休日を除く1日前のYYYY/MM/DD
 
`%{Year:-1bd}/%{month:-1bd}/%{day:-1bd}`


# 直近の曜日による指定

- `%{day:+fri}`  => 次の金曜日の日 (当日が金曜の場合は来週の金曜日)
- `%{day:+=fri}` => 次の金曜日の日 (当日を含む)
- `%{day:=fri}`  => その週の金曜日 (週は日曜始まり)
- `%{day:-fri}`  => 前の金曜日の日 (当日が金曜の場合は先週の金曜日)
- `%{day:-=fri}` => 前の金曜日の日 (当日を含む)

曜日は以下のように3文字で指定可能です

`sun`, `mon`, `tue`, `wed`, `thu`, `fri`, `sat`

### 例: その週の月曜日のYYYY/MM/DD
 
`%{Year:=mon}/%{month:=mon}/%{day:=mon}`

# その他

- `+1y+2d` や `=fri+2d` のように、複数の拡張記法を同時に使うことはできません
- 現在のところ、祝日の判定には [holiday-jp/holiday_jp-ruby: Japanese holiday.](https://github.com/holiday-jp/holiday_jp-ruby) を活用しています
- 参考: [help/投稿テンプレート: 利用できるテンプレート変数](https://docs.esa.io/posts/7#%E5%88%A9%E7%94%A8%E3%81%A7%E3%81%8D%E3%82%8B%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E5%A4%89%E6%95%B0)
