wareki 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +15 -0
- data/.rspec +2 -0
- data/LICENSE +24 -0
- data/README.rdoc +103 -0
- data/Rakefile +6 -0
- data/lib/wareki/calendar_def.rb +1433 -0
- data/lib/wareki/common.rb +41 -0
- data/lib/wareki/core_ext.rb +33 -0
- data/lib/wareki/date.rb +206 -0
- data/lib/wareki/era_def.rb +502 -0
- data/lib/wareki/utils.rb +173 -0
- data/lib/wareki/version.rb +3 -0
- data/lib/wareki.rb +2 -0
- data/wareki.gemspec +25 -0
- metadata +101 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 18d3594a1f100547ec183c81a7bd4e4d21ab50ac
|
4
|
+
data.tar.gz: 08165d7fac2f497d66185bc765412f7aa7a06445
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 92a271bd97160704267651f3735146433bc6f09e00d3ec665d49e56b73cd44e980bd38a0d0bcd7df3cba004c57f514594fd5afab7e483326e2309cf2907222e2
|
7
|
+
data.tar.gz: 2053ad6c27728eb69b95bf42cbf8ece6e7a76465ce53e5e2459e57a3742296b7f8c8ba9c0dad47b5e71a14526223558bb0ce75fa5f77142a7734138920b58c9c
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
Copyright (c) 2015, Tatsuki Sugiura
|
2
|
+
All rights reserved.
|
3
|
+
|
4
|
+
Redistribution and use in source and binary forms, with or without
|
5
|
+
modification, are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
* Redistributions of source code must retain the above copyright notice, this
|
8
|
+
list of conditions and the following disclaimer.
|
9
|
+
|
10
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
11
|
+
this list of conditions and the following disclaimer in the documentation
|
12
|
+
and/or other materials provided with the distribution.
|
13
|
+
|
14
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
15
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
16
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
17
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
18
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
19
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
20
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
21
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
22
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
23
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
24
|
+
|
data/README.rdoc
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
= ruby 和暦ライブラリ
|
2
|
+
|
3
|
+
== 概要
|
4
|
+
|
5
|
+
日本の和暦をサポートするライブラリです。
|
6
|
+
旧暦は445年から、元号は大化から全て処理できます。
|
7
|
+
元号はWikipedia、暦は日本暦日原典由来のデータを元にしています。
|
8
|
+
|
9
|
+
== 機能
|
10
|
+
|
11
|
+
* 和暦文字列のパース
|
12
|
+
* 旧字体を含む元号のサポート (慶應、萬延など)
|
13
|
+
* 漢数字サポート
|
14
|
+
* 閏月サポート
|
15
|
+
* 月の別名(如月、弥生、師走など)のサポート
|
16
|
+
* 元年、正月、朔日、晦日、廿一日、卅日 などの特殊な表記の日付サポート
|
17
|
+
* Date クラスの拡張
|
18
|
+
* strftime に和暦フォーマット文字列を追加
|
19
|
+
* to_wareki_date を追加
|
20
|
+
* Date::JAPAN (明治改暦日)の追加
|
21
|
+
|
22
|
+
== インストール
|
23
|
+
|
24
|
+
Gemfile に以下のようにするか、
|
25
|
+
|
26
|
+
gem 'wareki'
|
27
|
+
|
28
|
+
もしくは、直接 gem install して下さい。
|
29
|
+
|
30
|
+
gem install wareki
|
31
|
+
|
32
|
+
== 使い方の例
|
33
|
+
|
34
|
+
require 'wareki'
|
35
|
+
|
36
|
+
Date.today.strftime("%JF") # => "平成二十七年八月二十二日"
|
37
|
+
Date.civil(1311, 7, 20).strftime("%JF") # => "応長元年閏六月四日"
|
38
|
+
|
39
|
+
Date.today.to_wareki_date # => Wareki::Date インスタンス
|
40
|
+
Wareki::Date.new("明治", 8, 2, 1).to_date # => 標準 Date インスタンス 1875-02-01
|
41
|
+
|
42
|
+
Wareki::Date.parse("正嘉元年 うるう3月 12日") # => Wareki::Date インスタンス
|
43
|
+
Date.parse("正嘉元年 うるう3月 12日)" # => 標準 Date インスタンス 1257-04-27
|
44
|
+
|
45
|
+
== フォーマット文字列
|
46
|
+
|
47
|
+
* %Jf: "%Je%Jg年%Js%Jl月%Jd日" の略 (例: 平成23年3月12日)
|
48
|
+
* %JF: "%Je%JGK年%JLk%JSk月%JDk日" の略 (例: 平成二十三年三月十二日)
|
49
|
+
* %Jy: "%Je%Jg" の略 (元号+半角数字年)
|
50
|
+
* %JY: "%Je%JG" の略 (元号+全角数字年)
|
51
|
+
* %JYk: "%Je%Gk" の略 (元号+漢数字年)
|
52
|
+
* %JYK: "%Je%GK" の略 (元号+特殊漢数字年)
|
53
|
+
* %Je: 元号 (存在しない場合空文字列になります)
|
54
|
+
* %Jg: 和暦年の半角数字(元号が存在しない場合空文字列)
|
55
|
+
* %JG: 和暦年の全角数字(元号が存在しない場合空文字列)
|
56
|
+
* %JGk: 和暦年の漢数字(元号が存在しない場合空文字列)
|
57
|
+
* %JGK: 和暦年の漢数字の特殊記法 (元) (元号が存在しない場合空文字列)
|
58
|
+
* %Jo: 旧暦年の半角数字
|
59
|
+
* %JO: 旧暦年の全角数字
|
60
|
+
* %JOk: 旧暦年の漢数字
|
61
|
+
* %Ji: 神武天皇即位紀元(皇紀)年の半角数字
|
62
|
+
* %JI: 神武天皇即位紀元(皇紀)年の全角数字
|
63
|
+
* %JIk: 神武天皇即位紀元(皇紀)年の漢数字
|
64
|
+
* %Jm: "%Js%Jl" の略 (和暦月の半角数字。閏月は後ろに "'" を追加)
|
65
|
+
* %JM: "%JLk%JS" の略 (和暦月の全角数字。閏月は前に "閏" を追加)
|
66
|
+
* %JMk: "%JLk%JSk" の略 (和暦月の漢数字。閏月は前に "閏" を追加)
|
67
|
+
* %Js: 和暦月の半角数字
|
68
|
+
* %JS: 和暦月の全角数字
|
69
|
+
* %JSk: 和暦月の漢数字
|
70
|
+
* %JSK: 和暦月の別名 (睦月、如月、弥生...)
|
71
|
+
* %Jl: 和暦月が閏月の場合 "'"、そうでなければ空文字列になります。
|
72
|
+
* %JL: 和暦月が閏月の場合 "’"、そうでなければ空文字列になります。
|
73
|
+
* %JLk: 和暦月が閏月の場合 "閏"、そうでなければ空文字列になります。
|
74
|
+
* %Jd: 和暦日の半角数字
|
75
|
+
* %JD: 和暦日の全角数字
|
76
|
+
* %JDk: 和暦日の漢数字
|
77
|
+
* %JDK: 和暦日の漢数字の特殊記法 (朔、晦)
|
78
|
+
|
79
|
+
== 仕様、限界、制限など
|
80
|
+
|
81
|
+
* 作者は暦の専門家ではまったくありません。ツッコミお待ちしています。
|
82
|
+
* 皇紀と旧暦が出力できますが、旧暦445年1月1日(先発グレゴリオ暦で445年1月25日)より前の日付はサポートしていません。扱おうとすると UnsupportedDateRange 例外を上げます。
|
83
|
+
* 日本暦日原典の対照表が、どの暦法を元にしているのか分かっていません。単にデータだけを利用しています。
|
84
|
+
* 内部的には全てユリウス日を経由して変換しています。
|
85
|
+
* パース時には元号の存在しない年(例: 霊亀百年)を受け入れます。しかし現状、Date に変換した場合この情報は捨てられ、パース時の元号を復元することはできません。(Wareki::Date を直接扱えば可能です)
|
86
|
+
* 改暦による存在しない日(明治5年12月3日〜31日)は基本的に例外を上げます。が、現状このチェックは完全ではありません。
|
87
|
+
* 北朝の元号も解釈できます。しかし現在の所、北朝の元号で文字列にフォーマットすることはできません。
|
88
|
+
* 10月の別名は「神無月」しかサポートしていません
|
89
|
+
* 将来の日付に関しては、現在の元号がずっと継続しているとみなします
|
90
|
+
* 日本でユリウス暦は使われていないので、Date::JAPAN は単にグレゴリオ暦への改暦日の目安、と言うだけです。Date.new で使う意味はほぼありません。
|
91
|
+
|
92
|
+
== 参照元データ
|
93
|
+
|
94
|
+
作成には以下のデータを参照しました。
|
95
|
+
|
96
|
+
* 旧暦: {suikawiki - 旧暦}[http://wiki.suikawiki.org/n/%E6%97%A7%E6%9A%A6#section-%E5%AF%BE%E7%85%A7%E8%A1%A8%E3%81%A8%E5%A4%89%E6%8F%9B%E3%83%84%E3%83%BC%E3%83%AB] にある「日本暦日原典」第4版準拠の先発グレゴリオ暦対照表
|
97
|
+
* 元号: {Wikipedia - 元号一覧_(日本)}[https://ja.wikipedia.org/wiki/%E5%85%83%E5%8F%B7%E4%B8%80%E8%A6%A7_%28%E6%97%A5%E6%9C%AC%29] のユリウス歴とグレゴリオ暦表記の物を利用しています
|
98
|
+
|
99
|
+
== TODO
|
100
|
+
* 北朝モード
|
101
|
+
* Wareki::Date で各種計算のサポート
|
102
|
+
* 元号として "西暦" サポート?
|
103
|
+
* 元号の切り替え日を和暦ベースで計算するようにする?
|