Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
和暦 & 漢数字 gem
Search
Tatsuki Sugiura
April 10, 2019
Technology
49
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
和暦 & 漢数字 gem
Tatsuki Sugiura
April 10, 2019
More Decks by Tatsuki Sugiura
See All by Tatsuki Sugiura
フロントエンドから触れるHTTPパフォーマンス
sugi_0000
0
24
103 Early Hints
sugi_0000
1
900
No more parser-inserted js - defer / async を今こそ完全に理解する
sugi_0000
0
93
FLOSSむかしばなし
sugi_0000
0
31
FLOSS とフリーカルチャーの流れ
sugi_0000
0
38
Git overview
sugi_0000
0
48
飲む方の茶会
sugi_0000
0
27
Other Decks in Technology
See All in Technology
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
2
1.6k
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.3k
PM領域でのAI Agentの活用
lycorptech_jp
PRO
0
270
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
0
150
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
250
推論の観測、できていますか? 〜 Google Cloud Gemini Enterprise Agent Platformで 3つの Gemini モデルを実測して踏んだ、評価の罠 〜
shukob
PRO
0
150
【視聴者参加型!】AWSセキュリティアンチパターンクイズ
syoshie
0
430
Kiro Crewしか勝たん!?
miu_crescent
PRO
0
180
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
270
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
0
180
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
200
いま、生成AIにKaggleをどこまで 任せられるか — ROGIIコンペでの進め方とTips
k951286
3
1.4k
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Rails Girls Zürich Keynote
gr2m
96
14k
Darren the Foodie - Storyboard
khoart
PRO
3
3.9k
The SEO Collaboration Effect
kristinabergwall1
1
550
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
720
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
510
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
270
Six Lessons from altMBA
skipperchong
29
4.5k
Making Projects Easy
brettharned
120
6.7k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Transcript
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 和暦&漢数字gem 平成も終わるので和暦gemを紹介+ 杉浦達樹
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 今から話す内容 3年くらい前に作った和暦の gemの紹介
✓ 漢数字処理を分離して新規gem にします ✓ 事例とかあったら是非教えてく ださい ✓
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 - wareki (和暦)
gem http://github.com/sugi/wareki
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 和暦に gem 要るの?
大抵個別案件で適当に書けるが ✓ でも微妙に面倒 全角や漢数字の面倒見たくない ✓ 明治6年より前は困る ✓ ✓ 別に難しくはないけど面倒 → 決定版を作ってもう悩むのをや めよう! ✓ ✓
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 和暦 gem の売り
日本語日付パース出来ます! ✓ 日付を日本語で色々フォーマッ トできます ✓ 日本の旧暦扱えます ✓ 大化から全元号いけます ✓
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 日本語パース 半角全角漢数字スタイル混在 ✓
一文字年号、旧字元号 ✓ Date.parse("平成27年1二月8日") # => 2015-12-8 Date.parse("㍼一〇年5月二十八日") # => 1935-05-28 Date.parse("西暦10年5月3日") # => 10-5-3 Date.parse("紀元前203年12月31日") # => -203-12-31
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 日本語パース 旧暦 ✓
閏月 ✓ Date.parse("明治5年12月2日") # => 1872-12-31 Date.parse("安政7年3月17日") # => 1860-4-7 Date.parse("元仁1年うるう7月1日") # => 1224-8-17
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 日本語パース 元年、正月、元日、元旦 ✓
Date.parse("元仁二年 元日") # => 1225-2-9 Date.parse("平成元年元旦") # => 1989-1-1
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 日本語パース 朔日、 晦日(その月の最終日)
✓ Date.parse("元仁元年閏七月朔日") # => 1224-8-17 Date.parse("寿永三年 五月 晦日") # => 1184-7-9 Date.parse("平成12年十二月晦日") # => 2000-12-31 Date.parse("平成31年2月晦日") # => 2019-02-28
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 日本語パース 月の別名 ✓
Date.parse("安政七年 弥生") # => 1860-03-22 Date.parse("平成30年神無月5日") # => 2018-10-05
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 日本語パース 大字(だいじ) ✓
Date.parse("㍻ 拾年 肆月 陸日") # => 1998-04-06 Date.parse("安政漆年參月廿日") # => 1860-4-10 Date.parse("皇紀貳阡皕卌年") # => 1580-01-17
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 日本語へのフォーマット d =
Date.today d.strftime("%JF") # => "平成三十一年四月十日" d.strftime("%Jf") # => "平成31年4月10日" stftime ラッパーでフォーマット 文字列追加 %JF: 漢字 ✓ %Jf: 半角 ✓ 他にもたくさん ✓ ✓
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 まとめ: 平成も終わるので この機会に内部は標準Dateオ
ブジェクトに ✓ 古い文書を扱う人にはぜひ試し てもらいたい 歴史上の人物の年齢を計算したりす るのが楽です ✓ ✓ 以上和暦 gem の紹介 ✓
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 - 漢数字gem 作ります
http://github.com/sugi/ ya_kansuji
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 漢数字gem要る? 和暦の漢数字処理を分離したい ✓
これもまあ個別に書けるけど ちゃんとパースするのが微妙に面倒 ✓ 色々フォーマットあればまあ便利? ✓ ✓ 別に難しくはないけど面倒 → ライブラリに任せたい ✓ ✓
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 漢数字 gem に必要な機能
漢数字や漢字混じり数字文字列 ⇔ 数値 単にこれだけだけど…… ✓ 網羅しようとすると意外に色々 網羅してあるだけでも意味がありそう ✓ 事例あれば教えて下さい ✓ ✓
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 漢数字文字列 → 数値
漢数字 (千二百, 一二〇〇) ✓ 全角数字 (1234) ✓ 漢字数字混在 (1億30万) 数字コンマ混じり (3億5,000万) ✓ ✓ 位取り (千〇二十八, 5万0030) ✓ 大字 (千皕卅肆) ✓
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 数値 → 漢数字文字列
練習問題にあるパターン: 123456789 => "一億二千三百四十五万六千七百八十九" ✓ シンプルだけど、これ実際に使 うかな? ✓
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 数値 → 漢数字
(実例) 『一橋社会科学』編集委員会: 六億五七八三万七六九一人 a. 約八千万人 / 八百万人 / 八千人 b. 一九四五年 / 二五〇〇枚 c. 十三世紀 / 二十世紀 / 六十五万票 d. ✓ (http://www.soc.hit-u.ac.jp/ journal/hyouki.pdf)
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 数値 → 漢数字
(実例) 「公用文作成の要領」方式: 100億, 30万円 / 5,000 ✓ 行政司法協会方式: 1,200億 / 2億58万6,300円 ✓ 裁判判例縦書き方式: 一二万〇〇五六円 ✓ 最高裁判例横書き方式: 5万0539円 ✓
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 選択式フォーマッタ to_kan(12340005) #
=> "千二百三十四万五" to_kan(12340005, :simple) # => "千二百三十四万五" to_kan(12340005, :gov) # => "1234万, 5" to_kan(12340005, :lawyer) # => "1,234万5" to_kan(12340005, :judic) # => "一二三四万〇〇〇五" to_kan(12340005, :judic_v) # => "1234万0005"
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 ユーザ拡張フォーマッタ YaKansuji.register_formatter :hoge,
-> (num, opts = {}) { if num == 0 ; "" elsif num == 1; "いち" elsif num == 2; "に" else; "たくさん" end } to_kan(2, :hoge) # => "に" to_kan(123, :hoge) # => "たくさん"
和暦&漢数字gem - 平成も終わるので和暦gemを紹介+ Powered by Rabbit 2.2.1 以上 漢数字 gem
和暦で要る部分は外部化 ✓ 事例や情報あればお願いします ✓