この計算ツールでできること
開始日と終了日の間の経過期間を求め、一度に5通りの形式で表示します。表示されるのは、合計日数/週数とあまりの日数/満月数(暦どおりの月数)とあまりの日数/満年数とあまりの日数/そして「○年○か月○日」という一般的な年月日表記です。たとえば「誕生日から今日まで何日経ったか」を正確に調べるといった使い方ができます。
適用範囲について(日本の和暦)
計算自体はどの国でも通用する普遍的な日付計算で、国を問わず利用できます。日本固有なのは「和暦」の選択肢だけです。明治・大正・昭和・平成・令和を選ぶと、和暦の年が一定の基準値を足して西暦に変換されます(例:令和1年=2018+1=2019年)。標準かつ基本となるのは西暦モードで、入力した数値がそのまま西暦の年になります。和暦での入力が意味を持つのは、日本がグレゴリオ暦を採用した明治6年(1873年)以降です。
使い方
各日付の「暦・元号」を選び(通常の用途では「西暦」のままで構いません)、開始日と終了日それぞれの年・月・日を入力します。さらに「初日を含めるかどうか」を選びます。「含めない」を選ぶと単純な差になり、「含める」を選ぶと1日を加算して両端の日付の両方を数えます。
計算式
各日付は、月や年の区切りに左右されず連続して日を数えるユリウス通日(JDN)に変換されます。これにより、うるう年も自動的に処理されます。合計日数は JDN(終了日)−JDN(開始日)で求め、必要に応じて1を加えます。週数は7で割った商です。月数と年数は「応当日方式」で数えます。つまり、開始日と同じ日付に達して初めて1か月分としてカウントするため、年齢や期間を表すときの一般的な感覚と一致した内訳になります。
$$\Delta = \text{JDN}(Y_e,M_e,D_e) - \text{JDN}(Y_s,M_s,D_s) + \text{First Day}$$ $$\text{where}\quad \left\{ \begin{aligned} Y_s &= \text{Start Era} + \text{Start Year},\; M_s = \text{Start Month},\; D_s = \text{Start Day} \\ Y_e &= \text{End Era} + \text{End Year},\; M_e = \text{End Month},\; D_e = \text{End Day} \end{aligned} \right.$$
計算例
開始日 2000-06-15、終了日 2010-06-20、初日を含めない場合。JDN(開始日)=2451711、JDN(終了日)=2455368 なので、日数=3657日。週数=522週とあまり3日。月数=120か月とあまり5日。年数=10年とあまり5日。年月日表記では 10年0か月5日 となります。
よくある質問
終了日が開始日より前の場合はどうなりますか? 合計日数はマイナスで表示され、期間の向き(前後関係)がわかります。週数・月数・年数の内訳は、絶対値の期間として表示されます。
うるう年には対応していますか? はい。ユリウス通日を使っているため、うるう年や2月29日も自動的に正しく処理されます。
なぜ月数や年数を単純に「日数÷30」や「日数÷365」で求めないのですか? 実際の月や年は長さがそれぞれ異なるからです。本ツールは暦どおりの応当日を数えるため、固定の平均値で割るよりも正確です。