Submit Search
Rubyで和暦をよみとる
0 likes
1,493 views
Takashi Ota
Rubyで和暦を読み取るときに注意すべきポイントについて調べました.
Technology
Education
Read more
1 of 15
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
More Related Content
PDF
カーネル密度推定を用いた店舗情報の可視化
Kanetaka Heshiki
PDF
Siphone coffeemaker okayama-js-1
NISHIMOTO Keisuke
KEY
Emacs 使いが Vim を使ってみた(ちょっとだけGit)
Yoshiyuki MIYAGI
PPTX
俺と JAWS-UG と CLI
Daisuke Nagao
PDF
オレオレPHPのつくり方
Ryusuke Sekiyama
PDF
PCさえあればいい。
bleis tift
PDF
いい加減に作ったAndroidアプリを放流したった
boiledorange73
PPTX
USP 友の会 LT 資料 20130413
博文 斉藤
カーネル密度推定を用いた店舗情報の可視化
Kanetaka Heshiki
Siphone coffeemaker okayama-js-1
NISHIMOTO Keisuke
Emacs 使いが Vim を使ってみた(ちょっとだけGit)
Yoshiyuki MIYAGI
俺と JAWS-UG と CLI
Daisuke Nagao
オレオレPHPのつくり方
Ryusuke Sekiyama
PCさえあればいい。
bleis tift
いい加減に作ったAndroidアプリを放流したった
boiledorange73
USP 友の会 LT 資料 20130413
博文 斉藤
What's hot
(11)
PDF
30days Albumの裏側〜監視・インフラCI事情〜 #monitoringcasual
Takahiro Okumura
PPTX
部活でシェル芸がはやらない
xztaityozx
PDF
Play frameworkをエヴァンジェる
ke-m kamekoopa
PDF
Oneliner
NNCT programming study group
PDF
柿と杮
xztaityozx
PDF
Redis Intro Osc2010 Tokyo Spring
Makoto Ohnami
PDF
zsh とわたし
Toshihiko Shimokawa
PDF
OCamlでJavaScriptが幸せ
Sachirou Inoue
PDF
シェル芸をドット絵にして思いを伝えよう!
xztaityozx
PDF
Web技術勉強会 第37回
龍一 田中
PDF
入門 超絶技巧プログラミング !
Nobutada Matsubara
30days Albumの裏側〜監視・インフラCI事情〜 #monitoringcasual
Takahiro Okumura
部活でシェル芸がはやらない
xztaityozx
Play frameworkをエヴァンジェる
ke-m kamekoopa
Oneliner
NNCT programming study group
柿と杮
xztaityozx
Redis Intro Osc2010 Tokyo Spring
Makoto Ohnami
zsh とわたし
Toshihiko Shimokawa
OCamlでJavaScriptが幸せ
Sachirou Inoue
シェル芸をドット絵にして思いを伝えよう!
xztaityozx
Web技術勉強会 第37回
龍一 田中
入門 超絶技巧プログラミング !
Nobutada Matsubara
Ad
Viewers also liked
(6)
DOC
Ejercicio 56
aitoor1234
PPT
La mision del colibri
epilarbg
PPTX
Tema 1. multiplicación y división
Daniel Calvente Calvente
DOCX
La leyenda del colibrí
SweetAngel55
PPT
Divisiones entre 10
Luis Gutiérrez
PPTX
Modenf.powerpoint
María Del Cid Valdés
Ejercicio 56
aitoor1234
La mision del colibri
epilarbg
Tema 1. multiplicación y división
Daniel Calvente Calvente
La leyenda del colibrí
SweetAngel55
Divisiones entre 10
Luis Gutiérrez
Modenf.powerpoint
María Del Cid Valdés
Ad
Similar to Rubyで和暦をよみとる
(6)
DOCX
Data munging
Hiroyuki Taira
PDF
20131102 第7回シェル芸勉強会
Ryuichi Ueda
PDF
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
mametter
PDF
モテる! Node.js でつくる twitter ボット制作
hecomi
PDF
Title
stucon
PDF
ゲーム開発者のための C++11/C++14
Ryo Suzuki
Data munging
Hiroyuki Taira
20131102 第7回シェル芸勉強会
Ryuichi Ueda
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
mametter
モテる! Node.js でつくる twitter ボット制作
hecomi
Title
stucon
ゲーム開発者のための C++11/C++14
Ryo Suzuki
Rubyで和暦をよみとる
1.
takot
2.
諸事情によりRuby
1.8.[56] でやってます /) ///) /,.=゙''"/ / i f ,.r='"-‐'つ____ Ruby1.9? こまけぇこたぁいいんだよ!! / / _,.-‐'~/⌒ ⌒\ / ,i ,二ニ⊃( ●). (●)\ / ノ il゙フ::::::⌒(__人__)⌒::::: \ ,イ「ト、 ,!,!| |r┬-| | / iトヾヽ_/ィ"\ `ー'´ /
4.
発端
最初はスクレイピング して取ってくる「平成 21年10月3日(土)」を parseしたかった URLに …/h211003.html みた いなのがあったので日 和る これ(h211003)を取り 出してDateオブジェク トに変換したい 一般的にはDate.parse を使う
5.
実際にやってみた irb(main):002:0> d =
Date.parse("h211003") #<Date: 3458007/2,0,2299161> irb(main):004:0> p d.year 21 => nil irb(main):005:0> p d.day 3 nil irb(main):007:0> p d.month 10 => nil 年のが失敗する……orz だが……
6.
ただし irb(main):008:0> d =
Date.parse("H21.10.03") => #<Date: 4910215/2,0,2299161> irb(main):009:0> p d.year 2009 => nil “H21.10.03”なら行け る
7.
これは勝つる!
8.
どこで表記を調べてるか辿ってみた
まずDate.rbを読んだ require „format‟ してる /lib/ruby/1.8/date/format.r bの中でいろんなパターン マッチングで涙ぐましい 努力をしてる format.rb 読めばよくね?
9.
format.rb def self._parse_jis(str, e)
# :nodoc: if str.sub!(/¥b([MTSH])(¥d+)¥.(¥d+)¥.(¥d+)/in, ' ') era = { 'm'=>1867, 't'=>1911, 's'=>1925, 'h'=>1988 }[$1.downcase] e.year = $2.to_i + era e.mon = $3.to_i e.mday = $4.to_i true end end
10.
if str.sub!(/¥b([MTSH])(¥d+)¥.(¥d+)¥.(¥d+)/in, ' ')
11.
if str.sub!(/¥b([MTSH])(¥d+)¥.(¥d+)¥.(¥d+)/in,
' ') || str.sub!(/¥b([MTSH])(¥d{2})(¥d{2})(¥d{2})/in, ' ')
12.
自作
自分のスクリプト内でDate._parse_jis をoverride format.rb を直接書き換えても良いが,副作用を減らす # to expand Japanese calendar parsing def Date._parse_jis(str, e) # :nodoc: if str.sub!(/¥b([MTSH])(¥d+)¥.(¥d+)¥.(¥d+)/in, ' ') || str.sub!(/¥b([MTSH])(¥d{2})(¥d{2})(¥d{2})/in, ' ') era = { 'm'=>1867, 't'=>1911, 's'=>1925, 'h'=>1988 }[$1.downcase] # p era # => 1988 e.year = $2.to_i + era e.mon = $3.to_i e.mday = $4.to_i true end end
13.
できた! d = Date.parse("h211003") p
d.year # => 2009 p d.month p d.mday % ./test.rb 2009 10 3
14.
Future work 当初の平成21年10月3日(土)
とか 2009 年10月3日 に対応したい Date.parse_jis のやり方が分かったので 案外何とかなるかも
15.
まとめ オレオレ日付のparseが
したかったら, Date._parse_jis (など) をoverrideしよう! 慶長9年 => K9. みたい のもいける!
Download