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
0
32
和暦 & 漢数字 gem
Tatsuki Sugiura
April 10, 2019
Tweet
Share
More Decks by Tatsuki Sugiura
See All by Tatsuki Sugiura
フロントエンドから触れるHTTPパフォーマンス
sugi_0000
0
11
103 Early Hints
sugi_0000
1
750
No more parser-inserted js - defer / async を今こそ完全に理解する
sugi_0000
0
76
FLOSSむかしばなし
sugi_0000
0
19
FLOSS とフリーカルチャーの流れ
sugi_0000
0
21
Git overview
sugi_0000
0
35
飲む方の茶会
sugi_0000
0
19
Other Decks in Technology
See All in Technology
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
5
390
AIが実装する時代、人間は仕様と検証を設計する
gotalab555
1
170
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.6k
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
270
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
400
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
登壇駆動学習のすすめ — CfPのネタの見つけ方と書くときに意識していること
bicstone
3
130
ECS障害を例に学ぶ、インシデント対応に備えたAIエージェントの育て方 / How to develop AI agents for incident response with ECS outage
iselegant
3
290
Red Hat OpenStack Services on OpenShift
tamemiya
0
130
Context Engineeringの取り組み
nutslove
0
380
AIエージェントに必要なのはデータではなく文脈だった/ai-agent-context-graph-mybest
jonnojun
1
240
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
260
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Optimizing for Happiness
mojombo
379
71k
A Soul's Torment
seathinner
5
2.3k
Paper Plane (Part 1)
katiecoart
PRO
0
4.3k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Context Engineering - Making Every Token Count
addyosmani
9
670
A Modern Web Designer's Workflow
chriscoyier
698
190k
Are puppies a ranking factor?
jonoalderson
1
2.7k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
For a Future-Friendly Web
brad_frost
182
10k
So, you think you're a good person
axbom
PRO
2
1.9k
The SEO Collaboration Effect
kristinabergwall1
0
350
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
和暦で要る部分は外部化 ✓ 事例や情報あればお願いします ✓